mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-10 21:33:08 +05:00
0020944: EDF 1464 SMESH: detection of over-constrained elements
+ FT_OverConstrainedVolume, + FT_OverConstrainedFace, + class OverConstrainedVolume: public Predicate + class OverConstrainedFace: public Predicate
This commit is contained in:
parent
1a692fd690
commit
022f918412
BIN
doc/salome/gui/SMESH/images/over_constrained_faces.png
Normal file
BIN
doc/salome/gui/SMESH/images/over_constrained_faces.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
BIN
doc/salome/gui/SMESH/images/over_constrained_volumes.png
Normal file
BIN
doc/salome/gui/SMESH/images/over_constrained_volumes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
@ -33,6 +33,7 @@ Face quality controls:
|
|||||||
<ul>
|
<ul>
|
||||||
<li>\subpage free_faces_page "Free faces"</li>
|
<li>\subpage free_faces_page "Free faces"</li>
|
||||||
<li>\subpage bare_border_faces_page "Bare border faces"</li>
|
<li>\subpage bare_border_faces_page "Bare border faces"</li>
|
||||||
|
<li>\subpage over_constrained_faces_page "Over-constrained faces"</li>
|
||||||
<li>\subpage length_2d_page "Length 2D"</li>
|
<li>\subpage length_2d_page "Length 2D"</li>
|
||||||
<li>\subpage borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
|
<li>\subpage borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
|
||||||
<li>\subpage area_page "Area"</li>
|
<li>\subpage area_page "Area"</li>
|
||||||
@ -50,6 +51,7 @@ Volume quality controls:
|
|||||||
<li>\subpage volume_page "Volume"</li>
|
<li>\subpage volume_page "Volume"</li>
|
||||||
<li>\subpage max_element_length_3d_page "Max element length 3D"</li>
|
<li>\subpage max_element_length_3d_page "Max element length 3D"</li>
|
||||||
<li>\subpage bare_border_volumes_page "Bare border volumes"</li>
|
<li>\subpage bare_border_volumes_page "Bare border volumes"</li>
|
||||||
|
<li>\subpage over_constrained_volumes_page "Over-constrained volumes"</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
14
doc/salome/gui/SMESH/input/over_constrained_faces.doc
Normal file
14
doc/salome/gui/SMESH/input/over_constrained_faces.doc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
\page over_constrained_faces_page Over-constrained faces
|
||||||
|
|
||||||
|
\n This mesh quality control highlights faces sharing only one of its borders with other faces.
|
||||||
|
|
||||||
|
\image html over_constrained_faces.png
|
||||||
|
|
||||||
|
In this picture the over-constrained face is displayed in red.
|
||||||
|
|
||||||
|
<br><b>See Also</b> a sample TUI Script of a
|
||||||
|
\ref tui_over_constrained_faces "Over-constrained faces" filter.
|
||||||
|
|
||||||
|
*/
|
14
doc/salome/gui/SMESH/input/over_constrained_volumes.doc
Normal file
14
doc/salome/gui/SMESH/input/over_constrained_volumes.doc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
\page over_constrained_volumes_page Over-constrained volumes
|
||||||
|
|
||||||
|
\n This mesh quality control highlights volumes sharing only one of its borders with other volumes.
|
||||||
|
|
||||||
|
\image html over_constrained_volumes.png
|
||||||
|
|
||||||
|
In this picture the over-constrained volume is displayed in red.
|
||||||
|
|
||||||
|
<br><b>See Also</b> a sample TUI Script of a
|
||||||
|
\ref tui_over_constrained_volumes "Over-constrained volumes" filter.
|
||||||
|
|
||||||
|
*/
|
@ -149,6 +149,10 @@ one element of mesh only. See also a
|
|||||||
<b>Faces with bare border</b> selects 2D mesh elements having a free border without an edge on it.
|
<b>Faces with bare border</b> selects 2D mesh elements having a free border without an edge on it.
|
||||||
See also \ref bare_border_faces_page "Bare border faces quality control".
|
See also \ref bare_border_faces_page "Bare border faces quality control".
|
||||||
</li><li>
|
</li><li>
|
||||||
|
<b>Over-constrained faces</b> selects 2D mesh elements having only one border shared
|
||||||
|
with other 2D elements.
|
||||||
|
See also \ref over_constrained_faces_page "Over-constrained faces quality control".
|
||||||
|
</li><li>
|
||||||
<b>Borders at Multi-Connections 2D</b> selects cells consisting of edges belonging to
|
<b>Borders at Multi-Connections 2D</b> selects cells consisting of edges belonging to
|
||||||
several elements of mesh. The number of mesh elements should be more, less or equal
|
several elements of mesh. The number of mesh elements should be more, less or equal
|
||||||
(within a given <b>Tolerance</b>) to the predefined <b>Threshold Value</b>.
|
(within a given <b>Tolerance</b>) to the predefined <b>Threshold Value</b>.
|
||||||
@ -185,6 +189,10 @@ diagonals with a value of length, which is more, less or equal
|
|||||||
<b>Bad oriented volume</b> selects mesh volumes, which are incorrectly oriented from
|
<b>Bad oriented volume</b> selects mesh volumes, which are incorrectly oriented from
|
||||||
the point of view of MED convention.
|
the point of view of MED convention.
|
||||||
</li><li>
|
</li><li>
|
||||||
|
<b>Over-constrained volumes</b> selects mesh volumes having only one border shared
|
||||||
|
with other volumes.
|
||||||
|
See also \ref over_constrained_volumes_page "Over-constrained volumes quality control".
|
||||||
|
</li><li>
|
||||||
<b>Volumes with bare border</b> selects 3D mesh elements having a free border without a face on it.
|
<b>Volumes with bare border</b> selects 3D mesh elements having a free border without a face on it.
|
||||||
See also \ref bare_border_volumes_page "Bare border volumes quality control".
|
See also \ref bare_border_volumes_page "Bare border volumes quality control".
|
||||||
</li>
|
</li>
|
||||||
|
@ -357,6 +357,42 @@ bareGroup = mesh.MakeGroup("bare volumes", VOLUME, FT_BareBorderVolume)
|
|||||||
assert(bareGroup.Size() == len( faceToRemove))
|
assert(bareGroup.Size() == len( faceToRemove))
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
|
\section tui_over_constrained_faces Over-constrained faces
|
||||||
|
\code
|
||||||
|
from smesh import *
|
||||||
|
SetCurrentStudy(salome.myStudy)
|
||||||
|
|
||||||
|
mesh = Mesh()
|
||||||
|
faceFilter = GetFilter(FACE,FT_OverConstrainedFace)
|
||||||
|
|
||||||
|
#make an edge
|
||||||
|
n1 = mesh.AddNode(0,0,0)
|
||||||
|
n2 = mesh.AddNode(10,0,0)
|
||||||
|
edge = mesh.AddEdge([n1,n2])
|
||||||
|
assert( not mesh.GetIdsFromFilter( faceFilter ))
|
||||||
|
|
||||||
|
# make faces
|
||||||
|
mesh.ExtrusionSweep([edge], MakeDirStruct(0,7,0), 5)
|
||||||
|
assert( 2 == len( mesh.GetIdsFromFilter( faceFilter )))
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\section tui_over_constrained_volumes Over-constrained volumes
|
||||||
|
\code
|
||||||
|
from smesh import *
|
||||||
|
SetCurrentStudy(salome.myStudy)
|
||||||
|
|
||||||
|
mesh = Mesh()
|
||||||
|
volumeFilter = GetFilter(VOLUME,FT_OverConstrainedVolume)
|
||||||
|
|
||||||
|
# make volumes by extrusion of one face
|
||||||
|
n1 = mesh.AddNode(0,0,0)
|
||||||
|
n2 = mesh.AddNode(10,0,0)
|
||||||
|
edge = mesh.AddEdge([n1,n2])
|
||||||
|
mesh.ExtrusionSweep([edge], MakeDirStruct(0,7,0), 1)
|
||||||
|
mesh.ExtrusionSweep( mesh.GetElementsByType(FACE), MakeDirStruct(0,0,5), 7)
|
||||||
|
assert( 2 == len( mesh.GetIdsFromFilter( volumeFilter )))
|
||||||
|
\endcode
|
||||||
|
|
||||||
\section tui_length_2d Length 2D
|
\section tui_length_2d Length 2D
|
||||||
|
|
||||||
\code
|
\code
|
||||||
|
@ -66,6 +66,8 @@ module SMESH
|
|||||||
FT_BadOrientedVolume,
|
FT_BadOrientedVolume,
|
||||||
FT_BareBorderVolume,
|
FT_BareBorderVolume,
|
||||||
FT_BareBorderFace,
|
FT_BareBorderFace,
|
||||||
|
FT_OverConstrainedVolume,
|
||||||
|
FT_OverConstrainedFace,
|
||||||
FT_LinearOrQuadratic,
|
FT_LinearOrQuadratic,
|
||||||
FT_GroupColor,
|
FT_GroupColor,
|
||||||
FT_ElemGeomType,
|
FT_ElemGeomType,
|
||||||
@ -168,7 +170,7 @@ module SMESH
|
|||||||
interface BadOrientedVolume: Predicate {};
|
interface BadOrientedVolume: Predicate {};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Logical functor (predicate) "Volumes with bare border" and "Faces with bare border".
|
* Logical functor (predicate) "Volumes with bare border".
|
||||||
* Verify whether a mesh volume has a free facet without a mesh face on it
|
* Verify whether a mesh volume has a free facet without a mesh face on it
|
||||||
*/
|
*/
|
||||||
interface BareBorderVolume: Predicate {};
|
interface BareBorderVolume: Predicate {};
|
||||||
@ -179,6 +181,17 @@ module SMESH
|
|||||||
*/
|
*/
|
||||||
interface BareBorderFace: Predicate {};
|
interface BareBorderFace: Predicate {};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Logical functor (predicate) "Over-constrained Volume"
|
||||||
|
* Verify whether a mesh volume has only one facet shared with other volumes
|
||||||
|
*/
|
||||||
|
interface OverConstrainedVolume: Predicate {};
|
||||||
|
/*!
|
||||||
|
* Logical functor (predicate) "Over-constrained Face".
|
||||||
|
* Verify whether a mesh face has only one border shared with other faces
|
||||||
|
*/
|
||||||
|
interface OverConstrainedFace: Predicate {};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Logical functor (predicate) "Belong To Geometry".
|
* Logical functor (predicate) "Belong To Geometry".
|
||||||
* Verify whether mesh element or node belong to pointed Geom Object
|
* Verify whether mesh element or node belong to pointed Geom Object
|
||||||
@ -508,6 +521,8 @@ module SMESH
|
|||||||
BadOrientedVolume CreateBadOrientedVolume();
|
BadOrientedVolume CreateBadOrientedVolume();
|
||||||
BareBorderVolume CreateBareBorderVolume();
|
BareBorderVolume CreateBareBorderVolume();
|
||||||
BareBorderFace CreateBareBorderFace();
|
BareBorderFace CreateBareBorderFace();
|
||||||
|
OverConstrainedVolume CreateOverConstrainedVolume();
|
||||||
|
OverConstrainedFace CreateOverConstrainedFace();
|
||||||
LinearOrQuadratic CreateLinearOrQuadratic();
|
LinearOrQuadratic CreateLinearOrQuadratic();
|
||||||
|
|
||||||
GroupColor CreateGroupColor();
|
GroupColor CreateGroupColor();
|
||||||
|
@ -1172,6 +1172,8 @@ void SMESHGUI_FilterTable::SetCriterion (const int theRow,
|
|||||||
theCriterion.Type != SMESH::FT_BadOrientedVolume &&
|
theCriterion.Type != SMESH::FT_BadOrientedVolume &&
|
||||||
theCriterion.Type != SMESH::FT_BareBorderFace &&
|
theCriterion.Type != SMESH::FT_BareBorderFace &&
|
||||||
theCriterion.Type != SMESH::FT_BareBorderVolume &&
|
theCriterion.Type != SMESH::FT_BareBorderVolume &&
|
||||||
|
theCriterion.Type != SMESH::FT_OverConstrainedFace &&
|
||||||
|
theCriterion.Type != SMESH::FT_OverConstrainedVolume &&
|
||||||
theCriterion.Type != SMESH::FT_LinearOrQuadratic)
|
theCriterion.Type != SMESH::FT_LinearOrQuadratic)
|
||||||
aTable->item( theRow, 2 )->setText(QString("%1").arg(theCriterion.Threshold, 0, 'g', 15));
|
aTable->item( theRow, 2 )->setText(QString("%1").arg(theCriterion.Threshold, 0, 'g', 15));
|
||||||
else
|
else
|
||||||
@ -1332,7 +1334,9 @@ void SMESHGUI_FilterTable::updateAdditionalWidget()
|
|||||||
aCriterion != SMESH::FT_FreeFaces &&
|
aCriterion != SMESH::FT_FreeFaces &&
|
||||||
aCriterion != SMESH::FT_BadOrientedVolume &&
|
aCriterion != SMESH::FT_BadOrientedVolume &&
|
||||||
aCriterion != SMESH::FT_BareBorderFace &&
|
aCriterion != SMESH::FT_BareBorderFace &&
|
||||||
aCriterion != SMESH::FT_BareBorderVolume);
|
aCriterion != SMESH::FT_BareBorderVolume &&
|
||||||
|
aCriterion != SMESH::FT_OverConstrainedFace &&
|
||||||
|
aCriterion != SMESH::FT_OverConstrainedVolume);
|
||||||
|
|
||||||
if (!myAddWidgets.contains(anItem))
|
if (!myAddWidgets.contains(anItem))
|
||||||
{
|
{
|
||||||
@ -1509,9 +1513,11 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
|
|||||||
if (aType == SMESH::NODE && aCriterionType == SMESH::FT_FreeNodes ||
|
if (aType == SMESH::NODE && aCriterionType == SMESH::FT_FreeNodes ||
|
||||||
aType == SMESH::EDGE && aCriterionType == SMESH::FT_FreeBorders ||
|
aType == SMESH::EDGE && aCriterionType == SMESH::FT_FreeBorders ||
|
||||||
aType == SMESH::FACE && (aCriterionType == SMESH::FT_BareBorderFace ||
|
aType == SMESH::FACE && (aCriterionType == SMESH::FT_BareBorderFace ||
|
||||||
|
aCriterionType == SMESH::FT_OverConstrainedFace ||
|
||||||
aCriterionType == SMESH::FT_FreeEdges ||
|
aCriterionType == SMESH::FT_FreeEdges ||
|
||||||
aCriterionType == SMESH::FT_FreeFaces) ||
|
aCriterionType == SMESH::FT_FreeFaces) ||
|
||||||
aType == SMESH::VOLUME && (aCriterionType == SMESH::FT_BadOrientedVolume ||
|
aType == SMESH::VOLUME && (aCriterionType == SMESH::FT_BadOrientedVolume ||
|
||||||
|
aCriterionType == SMESH::FT_OverConstrainedVolume ||
|
||||||
aCriterionType == SMESH::FT_BareBorderVolume) ||
|
aCriterionType == SMESH::FT_BareBorderVolume) ||
|
||||||
aCriterionType == SMESH::FT_LinearOrQuadratic ||
|
aCriterionType == SMESH::FT_LinearOrQuadratic ||
|
||||||
aCriterionType == SMESH::FT_GroupColor ||
|
aCriterionType == SMESH::FT_GroupColor ||
|
||||||
@ -1796,6 +1802,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
|
|||||||
aCriteria[ SMESH::FT_MultiConnection2D ] = tr("MULTI2D_BORDERS");
|
aCriteria[ SMESH::FT_MultiConnection2D ] = tr("MULTI2D_BORDERS");
|
||||||
aCriteria[ SMESH::FT_FreeFaces ] = tr("FREE_FACES");
|
aCriteria[ SMESH::FT_FreeFaces ] = tr("FREE_FACES");
|
||||||
aCriteria[ SMESH::FT_BareBorderFace ] = tr("BARE_BORDER_FACE");
|
aCriteria[ SMESH::FT_BareBorderFace ] = tr("BARE_BORDER_FACE");
|
||||||
|
aCriteria[ SMESH::FT_OverConstrainedFace] = tr("OVER_CONSTRAINED_FACE");
|
||||||
aCriteria[ SMESH::FT_LinearOrQuadratic ] = tr("LINEAR");
|
aCriteria[ SMESH::FT_LinearOrQuadratic ] = tr("LINEAR");
|
||||||
aCriteria[ SMESH::FT_GroupColor ] = tr("GROUP_COLOR");
|
aCriteria[ SMESH::FT_GroupColor ] = tr("GROUP_COLOR");
|
||||||
aCriteria[ SMESH::FT_ElemGeomType ] = tr("GEOM_TYPE");
|
aCriteria[ SMESH::FT_ElemGeomType ] = tr("GEOM_TYPE");
|
||||||
@ -1807,17 +1814,18 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
|
|||||||
static QMap<int, QString> aCriteria;
|
static QMap<int, QString> aCriteria;
|
||||||
if (aCriteria.isEmpty())
|
if (aCriteria.isEmpty())
|
||||||
{
|
{
|
||||||
aCriteria[ SMESH::FT_AspectRatio3D ] = tr("ASPECT_RATIO_3D");
|
aCriteria[ SMESH::FT_AspectRatio3D ] = tr("ASPECT_RATIO_3D");
|
||||||
aCriteria[ SMESH::FT_RangeOfIds ] = tr("RANGE_OF_IDS");
|
aCriteria[ SMESH::FT_RangeOfIds ] = tr("RANGE_OF_IDS");
|
||||||
aCriteria[ SMESH::FT_BelongToGeom ] = tr("BELONG_TO_GEOM");
|
aCriteria[ SMESH::FT_BelongToGeom ] = tr("BELONG_TO_GEOM");
|
||||||
aCriteria[ SMESH::FT_LyingOnGeom ] = tr("LYING_ON_GEOM");
|
aCriteria[ SMESH::FT_LyingOnGeom ] = tr("LYING_ON_GEOM");
|
||||||
aCriteria[ SMESH::FT_BadOrientedVolume ] = tr("BAD_ORIENTED_VOLUME");
|
aCriteria[ SMESH::FT_BadOrientedVolume ] = tr("BAD_ORIENTED_VOLUME");
|
||||||
aCriteria[ SMESH::FT_BareBorderVolume ] = tr("BARE_BORDER_VOLUME");
|
aCriteria[ SMESH::FT_BareBorderVolume ] = tr("BARE_BORDER_VOLUME");
|
||||||
aCriteria[ SMESH::FT_Volume3D ] = tr("VOLUME_3D");
|
aCriteria[ SMESH::FT_OverConstrainedVolume] = tr("OVER_CONSTRAINED_VOLUME");
|
||||||
aCriteria[ SMESH::FT_MaxElementLength3D ] = tr("MAX_ELEMENT_LENGTH_3D");
|
aCriteria[ SMESH::FT_Volume3D ] = tr("VOLUME_3D");
|
||||||
aCriteria[ SMESH::FT_LinearOrQuadratic ] = tr("LINEAR");
|
aCriteria[ SMESH::FT_MaxElementLength3D ] = tr("MAX_ELEMENT_LENGTH_3D");
|
||||||
aCriteria[ SMESH::FT_GroupColor ] = tr("GROUP_COLOR");
|
aCriteria[ SMESH::FT_LinearOrQuadratic ] = tr("LINEAR");
|
||||||
aCriteria[ SMESH::FT_ElemGeomType ] = tr("GEOM_TYPE");
|
aCriteria[ SMESH::FT_GroupColor ] = tr("GROUP_COLOR");
|
||||||
|
aCriteria[ SMESH::FT_ElemGeomType ] = tr("GEOM_TYPE");
|
||||||
}
|
}
|
||||||
return aCriteria;
|
return aCriteria;
|
||||||
}
|
}
|
||||||
|
@ -465,6 +465,14 @@
|
|||||||
<source>ICON_BARE_BORDER_FACE</source>
|
<source>ICON_BARE_BORDER_FACE</source>
|
||||||
<translation>bare_border_face.png</translation>
|
<translation>bare_border_face.png</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ICON_OVER_CONSTRAINED_VOLUME</source>
|
||||||
|
<translation>over_constrained_volume.png</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ICON_OVER_CONSTRAINED_FACE</source>
|
||||||
|
<translation>over_constrained_face.png</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_WARP</source>
|
<source>ICON_WARP</source>
|
||||||
<translation>mesh_wrap.png</translation>
|
<translation>mesh_wrap.png</translation>
|
||||||
|
@ -399,6 +399,14 @@
|
|||||||
<source>MEN_BARE_BORDER_FACE</source>
|
<source>MEN_BARE_BORDER_FACE</source>
|
||||||
<translation>Faces with bare border</translation>
|
<translation>Faces with bare border</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MEN_OVER_CONSTRAINED_VOLUME</source>
|
||||||
|
<translation>Over-constrained volumes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MEN_OVER_CONSTRAINED_FACE</source>
|
||||||
|
<translation>Over-constrained faces</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MEN_FREE_BORDER</source>
|
<source>MEN_FREE_BORDER</source>
|
||||||
<translation>Free Borders</translation>
|
<translation>Free Borders</translation>
|
||||||
@ -2440,6 +2448,14 @@ Consider saving your work before application crash</translation>
|
|||||||
<source>STB_BARE_BORDER_FACE</source>
|
<source>STB_BARE_BORDER_FACE</source>
|
||||||
<translation>Faces with bare border</translation>
|
<translation>Faces with bare border</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>STB_OVER_CONSTRAINED_VOLUME</source>
|
||||||
|
<translation>Over-constrained volumes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>STB_OVER_CONSTRAINED_FACE</source>
|
||||||
|
<translation>Over-constrained faces</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>STB_FREE_BORDER</source>
|
<source>STB_FREE_BORDER</source>
|
||||||
<translation>Free Borders</translation>
|
<translation>Free Borders</translation>
|
||||||
@ -2984,6 +3000,14 @@ Consider saving your work before application crash</translation>
|
|||||||
<source>TOP_BARE_BORDER_FACE</source>
|
<source>TOP_BARE_BORDER_FACE</source>
|
||||||
<translation>Faces with bare border</translation>
|
<translation>Faces with bare border</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TOP_OVER_CONSTRAINED_VOLUME</source>
|
||||||
|
<translation>Over-constrained volumes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TOP_OVER_CONSTRAINED_FACE</source>
|
||||||
|
<translation>Over-constrained faces</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>TOP_FREE_BORDER</source>
|
<source>TOP_FREE_BORDER</source>
|
||||||
<translation>Free Borders</translation>
|
<translation>Free Borders</translation>
|
||||||
@ -4331,6 +4355,14 @@ Please check input data and try again</translation>
|
|||||||
<source>BARE_BORDER_FACE</source>
|
<source>BARE_BORDER_FACE</source>
|
||||||
<translation>Faces with bare border</translation>
|
<translation>Faces with bare border</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>OVER_CONSTRAINED_VOLUME</source>
|
||||||
|
<translation>Over-constrained volumes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>OVER_CONSTRAINED_FACE</source>
|
||||||
|
<translation>Over-constrained faces</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>BELONG_TO_CYLINDER</source>
|
<source>BELONG_TO_CYLINDER</source>
|
||||||
<translation>Belong to Cylinder</translation>
|
<translation>Belong to Cylinder</translation>
|
||||||
|
@ -266,44 +266,46 @@ namespace SMESH
|
|||||||
if ( theArg ) {
|
if ( theArg ) {
|
||||||
FunctorType aFunctorType = theArg->GetFunctorType();
|
FunctorType aFunctorType = theArg->GetFunctorType();
|
||||||
switch(aFunctorType){
|
switch(aFunctorType){
|
||||||
case FT_AspectRatio: myStream<< "anAspectRatio"; break;
|
case FT_AspectRatio: myStream<< "anAspectRatio"; break;
|
||||||
case FT_AspectRatio3D: myStream<< "anAspectRatio3D"; break;
|
case FT_AspectRatio3D: myStream<< "anAspectRatio3D"; break;
|
||||||
case FT_Warping: myStream<< "aWarping"; break;
|
case FT_Warping: myStream<< "aWarping"; break;
|
||||||
case FT_MinimumAngle: myStream<< "aMinimumAngle"; break;
|
case FT_MinimumAngle: myStream<< "aMinimumAngle"; break;
|
||||||
case FT_Taper: myStream<< "aTaper"; break;
|
case FT_Taper: myStream<< "aTaper"; break;
|
||||||
case FT_Skew: myStream<< "aSkew"; break;
|
case FT_Skew: myStream<< "aSkew"; break;
|
||||||
case FT_Area: myStream<< "aArea"; break;
|
case FT_Area: myStream<< "aArea"; break;
|
||||||
case FT_Volume3D: myStream<< "aVolume3D"; break;
|
case FT_Volume3D: myStream<< "aVolume3D"; break;
|
||||||
case FT_MaxElementLength2D:myStream<< "aMaxElementLength2D";break;
|
case FT_MaxElementLength2D: myStream<< "aMaxElementLength2D"; break;
|
||||||
case FT_MaxElementLength3D:myStream<< "aMaxElementLength3D";break;
|
case FT_MaxElementLength3D: myStream<< "aMaxElementLength3D"; break;
|
||||||
case FT_FreeBorders: myStream<< "aFreeBorders"; break;
|
case FT_FreeBorders: myStream<< "aFreeBorders"; break;
|
||||||
case FT_FreeEdges: myStream<< "aFreeEdges"; break;
|
case FT_FreeEdges: myStream<< "aFreeEdges"; break;
|
||||||
case FT_FreeNodes: myStream<< "aFreeNodes"; break;
|
case FT_FreeNodes: myStream<< "aFreeNodes"; break;
|
||||||
case FT_FreeFaces: myStream<< "aFreeFaces"; break;
|
case FT_FreeFaces: myStream<< "aFreeFaces"; break;
|
||||||
case FT_MultiConnection: myStream<< "aMultiConnection"; break;
|
case FT_MultiConnection: myStream<< "aMultiConnection"; break;
|
||||||
case FT_MultiConnection2D:myStream<< "aMultiConnection2D";break;
|
case FT_MultiConnection2D: myStream<< "aMultiConnection2D"; break;
|
||||||
case FT_Length: myStream<< "aLength"; break;
|
case FT_Length: myStream<< "aLength"; break;
|
||||||
case FT_Length2D: myStream<< "aLength"; break;
|
case FT_Length2D: myStream<< "aLength"; break;
|
||||||
case FT_BelongToGeom: myStream<< "aBelongToGeom"; break;
|
case FT_BelongToGeom: myStream<< "aBelongToGeom"; break;
|
||||||
case FT_BelongToPlane: myStream<< "aBelongToPlane"; break;
|
case FT_BelongToPlane: myStream<< "aBelongToPlane"; break;
|
||||||
case FT_BelongToCylinder: myStream<< "aBelongToCylinder"; break;
|
case FT_BelongToCylinder: myStream<< "aBelongToCylinder"; break;
|
||||||
case FT_BelongToGenSurface:myStream<<"aBelongToGenSurface";break;
|
case FT_BelongToGenSurface: myStream<<"aBelongToGenSurface"; break;
|
||||||
case FT_LyingOnGeom: myStream<< "aLyingOnGeom"; break;
|
case FT_LyingOnGeom: myStream<< "aLyingOnGeom"; break;
|
||||||
case FT_RangeOfIds: myStream<< "aRangeOfIds"; break;
|
case FT_RangeOfIds: myStream<< "aRangeOfIds"; break;
|
||||||
case FT_BadOrientedVolume:myStream<< "aBadOrientedVolume";break;
|
case FT_BadOrientedVolume: myStream<< "aBadOrientedVolume"; break;
|
||||||
case FT_BareBorderVolume: myStream<< "aBareBorderVolume"; break;
|
case FT_BareBorderVolume: myStream<< "aBareBorderVolume"; break;
|
||||||
case FT_BareBorderFace: myStream<< "aBareBorderFace"; break;
|
case FT_BareBorderFace: myStream<< "aBareBorderFace"; break;
|
||||||
case FT_LinearOrQuadratic:myStream<< "aLinearOrQuadratic";break;
|
case FT_OverConstrainedVolume: myStream<< "aOverConstrainedVolume"; break;
|
||||||
case FT_GroupColor: myStream<< "aGroupColor"; break;
|
case FT_OverConstrainedFace: myStream<< "aOverConstrainedFace"; break;
|
||||||
case FT_ElemGeomType: myStream<< "anElemGeomType"; break;
|
case FT_LinearOrQuadratic: myStream<< "aLinearOrQuadratic"; break;
|
||||||
case FT_LessThan: myStream<< "aLessThan"; break;
|
case FT_GroupColor: myStream<< "aGroupColor"; break;
|
||||||
case FT_MoreThan: myStream<< "aMoreThan"; break;
|
case FT_ElemGeomType: myStream<< "anElemGeomType"; break;
|
||||||
case FT_EqualTo: myStream<< "anEqualTo"; break;
|
case FT_LessThan: myStream<< "aLessThan"; break;
|
||||||
case FT_LogicalNOT: myStream<< "aLogicalNOT"; break;
|
case FT_MoreThan: myStream<< "aMoreThan"; break;
|
||||||
case FT_LogicalAND: myStream<< "aLogicalAND"; break;
|
case FT_EqualTo: myStream<< "anEqualTo"; break;
|
||||||
case FT_LogicalOR: myStream<< "aLogicalOR"; break;
|
case FT_LogicalNOT: myStream<< "aLogicalNOT"; break;
|
||||||
|
case FT_LogicalAND: myStream<< "aLogicalAND"; break;
|
||||||
|
case FT_LogicalOR: myStream<< "aLogicalOR"; break;
|
||||||
case FT_Undefined:
|
case FT_Undefined:
|
||||||
default: myStream<< "anUndefined"; break;
|
default: myStream<< "anUndefined"; break;
|
||||||
}
|
}
|
||||||
myStream<<theArg;
|
myStream<<theArg;
|
||||||
}
|
}
|
||||||
|
@ -392,8 +392,7 @@ namespace SMESH
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Class : BareBorderVolume_i
|
Class : BareBorderVolume_i
|
||||||
Description : Verify whether a mesh volume is incorrectly oriented from
|
Description : Verify whether a mesh volume has a free facet without a face on it
|
||||||
the point of view of MED convention
|
|
||||||
*/
|
*/
|
||||||
class SMESH_I_EXPORT BareBorderVolume_i: public virtual POA_SMESH::BareBorderVolume,
|
class SMESH_I_EXPORT BareBorderVolume_i: public virtual POA_SMESH::BareBorderVolume,
|
||||||
public virtual Predicate_i
|
public virtual Predicate_i
|
||||||
@ -405,8 +404,7 @@ namespace SMESH
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Class : BareBorderFace_i
|
Class : BareBorderFace_i
|
||||||
Description : Verify whether a mesh volume is incorrectly oriented from
|
Description : Verify whether a mesh face has a free border without an edge on it
|
||||||
the point of view of MED convention
|
|
||||||
*/
|
*/
|
||||||
class SMESH_I_EXPORT BareBorderFace_i: public virtual POA_SMESH::BareBorderFace,
|
class SMESH_I_EXPORT BareBorderFace_i: public virtual POA_SMESH::BareBorderFace,
|
||||||
public virtual Predicate_i
|
public virtual Predicate_i
|
||||||
@ -416,6 +414,30 @@ namespace SMESH
|
|||||||
FunctorType GetFunctorType();
|
FunctorType GetFunctorType();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Class : OverConstrainedVolume_i
|
||||||
|
Description : Verify whether a mesh volume has only one facet shared with other volumes
|
||||||
|
*/
|
||||||
|
class SMESH_I_EXPORT OverConstrainedVolume_i: public virtual POA_SMESH::OverConstrainedVolume,
|
||||||
|
public virtual Predicate_i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
OverConstrainedVolume_i();
|
||||||
|
FunctorType GetFunctorType();
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Class : OverConstrainedFace_i
|
||||||
|
Description : Verify whether a mesh face has only one border shared with other faces
|
||||||
|
*/
|
||||||
|
class SMESH_I_EXPORT OverConstrainedFace_i: public virtual POA_SMESH::OverConstrainedFace,
|
||||||
|
public virtual Predicate_i
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
OverConstrainedFace_i();
|
||||||
|
FunctorType GetFunctorType();
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Class : BelongToGeom_i
|
Class : BelongToGeom_i
|
||||||
Description : Predicate for selection on geometrical support
|
Description : Predicate for selection on geometrical support
|
||||||
@ -966,6 +988,8 @@ namespace SMESH
|
|||||||
BadOrientedVolume_ptr CreateBadOrientedVolume();
|
BadOrientedVolume_ptr CreateBadOrientedVolume();
|
||||||
BareBorderFace_ptr CreateBareBorderFace();
|
BareBorderFace_ptr CreateBareBorderFace();
|
||||||
BareBorderVolume_ptr CreateBareBorderVolume();
|
BareBorderVolume_ptr CreateBareBorderVolume();
|
||||||
|
OverConstrainedFace_ptr CreateOverConstrainedFace();
|
||||||
|
OverConstrainedVolume_ptr CreateOverConstrainedVolume();
|
||||||
LinearOrQuadratic_ptr CreateLinearOrQuadratic();
|
LinearOrQuadratic_ptr CreateLinearOrQuadratic();
|
||||||
|
|
||||||
GroupColor_ptr CreateGroupColor();
|
GroupColor_ptr CreateGroupColor();
|
||||||
|
@ -795,7 +795,8 @@ class smeshDC(SMESH._objref_SMESH_Gen):
|
|||||||
pass
|
pass
|
||||||
elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume, FT_FreeNodes,
|
elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume, FT_FreeNodes,
|
||||||
FT_FreeFaces, FT_LinearOrQuadratic,
|
FT_FreeFaces, FT_LinearOrQuadratic,
|
||||||
FT_BareBorderFace, FT_BareBorderVolume]:
|
FT_BareBorderFace, FT_BareBorderVolume,
|
||||||
|
FT_OverConstrainedFace, FT_OverConstrainedVolume]:
|
||||||
# At this point the treshold is unnecessary
|
# At this point the treshold is unnecessary
|
||||||
if aTreshold == FT_LogicalNOT:
|
if aTreshold == FT_LogicalNOT:
|
||||||
aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
|
aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
|
||||||
@ -3168,7 +3169,7 @@ class Mesh:
|
|||||||
|
|
||||||
## Generates new elements by extrusion of the elements with given ids
|
## Generates new elements by extrusion of the elements with given ids
|
||||||
# @param IDsOfElements the list of elements ids for extrusion
|
# @param IDsOfElements the list of elements ids for extrusion
|
||||||
# @param StepVector vector, defining the direction and value of extrusion
|
# @param StepVector vector or DirStruct, defining the direction and value of extrusion
|
||||||
# @param NbOfSteps the number of steps
|
# @param NbOfSteps the number of steps
|
||||||
# @param MakeGroups forces the generation of new groups from existing ones
|
# @param MakeGroups forces the generation of new groups from existing ones
|
||||||
# @return the list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise
|
# @return the list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise
|
||||||
|
Loading…
Reference in New Issue
Block a user