mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 19:50:32 +05:00
PAL19802 A "Clear Mesh data" method for SMESH.Mesh objects
This commit is contained in:
parent
06b29d4531
commit
54df188f64
BIN
doc/salome/gui/SMESH/images/mesh_clear.png
Normal file
BIN
doc/salome/gui/SMESH/images/mesh_clear.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 610 B |
@ -204,6 +204,11 @@ module SMESH
|
||||
GEOM::GEOM_Object GetShapeToMesh()
|
||||
raises (SALOME::SALOME_Exception);
|
||||
|
||||
/*!
|
||||
* Remove all nodes and elements
|
||||
*/
|
||||
void Clear()
|
||||
raises (SALOME::SALOME_Exception);
|
||||
|
||||
/*!
|
||||
* Get the subMesh object associated to a subShape. The subMesh object
|
||||
|
@ -39,6 +39,7 @@ dist_salomeres_DATA = \
|
||||
mesh_area.png \
|
||||
mesh_aspect.png \
|
||||
mesh_aspect_3d.png \
|
||||
mesh_clear.png \
|
||||
mesh_compute.png \
|
||||
mesh_connectivity.png \
|
||||
mesh_diagonal.png \
|
||||
|
BIN
resources/mesh_clear.png
Normal file
BIN
resources/mesh_clear.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 610 B |
@ -201,6 +201,54 @@ const TopoDS_Solid& SMESH_Mesh::PseudoShape()
|
||||
return aSolid;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
/*!
|
||||
* \brief Remove all nodes and elements
|
||||
*/
|
||||
//=======================================================================
|
||||
|
||||
void SMESH_Mesh::Clear()
|
||||
{
|
||||
// clear sub-meshes; get ready to re-compute as a side-effect
|
||||
|
||||
if ( SMESH_subMesh *sm = GetSubMeshContaining( GetShapeToMesh() ) )
|
||||
{
|
||||
SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/true,
|
||||
/*complexShapeFirst=*/false);
|
||||
while ( smIt->more() )
|
||||
{
|
||||
sm = smIt->next();
|
||||
TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType();
|
||||
if ( shapeType == TopAbs_VERTEX || shapeType < TopAbs_SOLID )
|
||||
// all other shapes depends on vertices so they are already cleaned
|
||||
sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
|
||||
}
|
||||
}
|
||||
|
||||
// clear entities not on sub-meshes
|
||||
|
||||
SMDS_VolumeIteratorPtr vIt = _myMeshDS->volumesIterator();
|
||||
while ( vIt->more() )
|
||||
_myMeshDS->RemoveFreeElement( vIt->next(), 0 );
|
||||
|
||||
SMDS_FaceIteratorPtr fIt = _myMeshDS->facesIterator();
|
||||
while ( fIt->more() )
|
||||
_myMeshDS->RemoveFreeElement( fIt->next(), 0 );
|
||||
|
||||
SMDS_EdgeIteratorPtr eIt = _myMeshDS->edgesIterator();
|
||||
while ( eIt->more() )
|
||||
_myMeshDS->RemoveFreeElement( eIt->next(), 0 );
|
||||
|
||||
SMDS_NodeIteratorPtr nIt = _myMeshDS->nodesIterator();
|
||||
while ( nIt->more() ) {
|
||||
const SMDS_MeshNode * node = nIt->next();
|
||||
if ( node->NbInverseElements() == 0 )
|
||||
_myMeshDS->RemoveFreeNode( node, 0 );
|
||||
else
|
||||
_myMeshDS->RemoveNode(node);
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : UNVToMesh
|
||||
//purpose :
|
||||
|
@ -82,6 +82,10 @@ public:
|
||||
*/
|
||||
static const TopoDS_Solid& PseudoShape();
|
||||
|
||||
/*!
|
||||
* \brief Remove all nodes and elements
|
||||
*/
|
||||
void Clear();
|
||||
|
||||
int UNVToMesh(const char* theFileName);
|
||||
/*!
|
||||
|
@ -1223,8 +1223,10 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
|
||||
_computeState = READY_TO_COMPUTE;
|
||||
SMESHDS_SubMesh* smDS = GetSubMeshDS();
|
||||
if ( smDS && smDS->NbNodes() ) {
|
||||
if ( event == CLEAN ) // this occures for algo which !NeedDescretBoundary() (PAL19272)
|
||||
if ( event == CLEAN ) {
|
||||
CleanDependants();
|
||||
cleanSubMesh( this );
|
||||
}
|
||||
else
|
||||
_computeState = COMPUTE_OK;
|
||||
}
|
||||
|
@ -1513,6 +1513,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
new SMESHGUI_BuildCompoundDlg( this );
|
||||
}
|
||||
break;
|
||||
|
||||
case 407: // DIAGONAL INVERSION
|
||||
case 408: // Delete diagonal
|
||||
{
|
||||
@ -2143,6 +2144,38 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4043: { // CLEAR_MESH
|
||||
|
||||
if(checkLock(aStudy)) break;
|
||||
|
||||
SALOME_ListIO selected;
|
||||
if( LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr() )
|
||||
aSel->selectedObjects( selected );
|
||||
|
||||
SUIT_OverrideCursor wc;
|
||||
SALOME_ListIteratorOfListIO It (selected);
|
||||
for ( ; It.More(); It.Next() )
|
||||
{
|
||||
Handle(SALOME_InteractiveObject) IOS = It.Value();
|
||||
SMESH::SMESH_Mesh_var aMesh =
|
||||
SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IOS);
|
||||
if ( aMesh->_is_nil()) continue;
|
||||
try {
|
||||
SMESH::UpdateView(SMESH::eErase, IOS->getEntry());
|
||||
aMesh->Clear();
|
||||
_PTR(SObject) aMeshSObj = SMESH::FindSObject(aMesh);
|
||||
SMESH::ModifiedMesh( aMeshSObj, false, true);
|
||||
}
|
||||
catch (const SALOME::SALOME_Exception& S_ex){
|
||||
wc.suspend();
|
||||
SalomeApp_Tools::QtCatchCorbaException(S_ex);
|
||||
wc.resume();
|
||||
}
|
||||
}
|
||||
SMESH::UpdateView();
|
||||
updateObjBrowser();
|
||||
break;
|
||||
}
|
||||
case 4051: // RENUMBERING NODES
|
||||
{
|
||||
if(checkLock(aStudy)) break;
|
||||
@ -2533,6 +2566,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
createSMESHAction( 4032, "HEXA", "ICON_DLG_HEXAS" );
|
||||
createSMESHAction( 4041, "REMOVE_NODES", "ICON_DLG_REM_NODE" );
|
||||
createSMESHAction( 4042, "REMOVE_ELEMENTS", "ICON_DLG_REM_ELEMENT" );
|
||||
createSMESHAction( 4043, "CLEAR_MESH" , "ICON_CLEAR_MESH" );
|
||||
createSMESHAction( 4051, "RENUM_NODES", "ICON_DLG_RENUMBERING_NODES" );
|
||||
createSMESHAction( 4052, "RENUM_ELEMENTS", "ICON_DLG_RENUMBERING_ELEMENTS" );
|
||||
createSMESHAction( 4061, "TRANS", "ICON_SMESH_TRANSLATION_VECTOR" );
|
||||
@ -2624,7 +2658,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
|
||||
createMenu( 5105, toolsId, -1 );
|
||||
|
||||
createMenu( 702, meshId, -1 );
|
||||
createMenu( 702, meshId, -1 ); // "Mesh" menu
|
||||
createMenu( 703, meshId, -1 );
|
||||
createMenu( 704, meshId, -1 );
|
||||
createMenu( 710, meshId, -1 );
|
||||
@ -2683,6 +2717,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
|
||||
createMenu( 4041, removeId, -1 );
|
||||
createMenu( 4042, removeId, -1 );
|
||||
createMenu( 4043, removeId, -1 );
|
||||
|
||||
createMenu( 4051, renumId, -1 );
|
||||
createMenu( 4052, renumId, -1 );
|
||||
@ -2770,6 +2805,7 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
createTool( separator(), addRemTb );
|
||||
createTool( 4041, addRemTb );
|
||||
createTool( 4042, addRemTb );
|
||||
createTool( 4043, addRemTb );
|
||||
createTool( separator(), addRemTb );
|
||||
createTool( 4051, addRemTb );
|
||||
createTool( 4052, addRemTb );
|
||||
@ -2833,12 +2869,16 @@ void SMESHGUI::initialize( CAM_Application* app )
|
||||
createPopupItem( 801, OB, mesh ); // CREATE_GROUP
|
||||
createPopupItem( 802, OB, subMesh ); // CONSTRUCT_GROUP
|
||||
popupMgr()->insert( separator(), -1, 0 );
|
||||
createPopupItem( 1100, OB, hypo, "" /*"&& $hasReference={false}"*/ ); // EDIT HYPOTHESIS
|
||||
createPopupItem( 1100, OB, hypo); // EDIT HYPOTHESIS
|
||||
createPopupItem( 1102, OB, hyp_alg ); // REMOVE HYPOTHESIS / ALGORITHMS
|
||||
createPopupItem( 1101, OB, mesh_group + " " + hyp_alg, "" /*"&& $hasReference={false}"*/ ); // RENAME
|
||||
createPopupItem( 1101, OB, mesh_group + " " + hyp_alg ); // RENAME
|
||||
popupMgr()->insert( separator(), -1, 0 );
|
||||
createPopupItem( 4043, OB, mesh ); // CLEAR_MESH
|
||||
popupMgr()->insert( separator(), -1, 0 );
|
||||
|
||||
QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
|
||||
QString nbSelected = QtxPopupMgr::Selection::defSelCountParam();
|
||||
QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( nbSelected );
|
||||
|
||||
createPopupItem( 125, OB, mesh, only_one_non_empty ); // EXPORT_MED
|
||||
createPopupItem( 126, OB, mesh, only_one_non_empty ); // EXPORT_UNV
|
||||
createPopupItem( 141, OB, mesh, only_one_non_empty ); // EXPORT_STL
|
||||
|
@ -304,6 +304,9 @@ msgstr "mesh_compute.png"
|
||||
msgid "ICON_BUILD_COMPOUND"
|
||||
msgstr "mesh_build_compound.png"
|
||||
|
||||
msgid "ICON_CLEAR_MESH"
|
||||
msgstr "mesh_clear.png"
|
||||
|
||||
msgid "ICON_UNION"
|
||||
msgstr "mesh_unionGroups.png"
|
||||
|
||||
|
@ -2514,6 +2514,9 @@ msgstr "Quality controls"
|
||||
msgid "MEN_RENAME"
|
||||
msgstr "Rename"
|
||||
|
||||
msgid "MEN_CLEAR_MESH"
|
||||
msgstr "Clear Mesh Data"
|
||||
|
||||
msgid "MEN_UNASSIGN"
|
||||
msgstr "Unassign"
|
||||
|
||||
@ -2834,6 +2837,9 @@ msgstr "Update"
|
||||
msgid "TOP_RENAME"
|
||||
msgstr "Rename"
|
||||
|
||||
msgid "TOP_CLEAR_MESH"
|
||||
msgstr "Clear Mesh Data"
|
||||
|
||||
msgid "TOP_UNASSIGN"
|
||||
msgstr "Unassign"
|
||||
|
||||
@ -3156,6 +3162,9 @@ msgstr "Update"
|
||||
msgid "STB_RENAME"
|
||||
msgstr "Rename"
|
||||
|
||||
msgid "STB_CLEAR_MESH"
|
||||
msgstr "Clear Mesh Data"
|
||||
|
||||
msgid "STB_UNASSIGN"
|
||||
msgstr "Unassign"
|
||||
|
||||
|
@ -753,6 +753,7 @@ bool _pyMesh::NeedMeshAccess( const Handle(_pyCommand)& theCommand )
|
||||
"GetNodeInverseElements","GetShapeID","GetShapeIDForElem","GetElemNbNodes",
|
||||
"GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
|
||||
"IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
|
||||
"Clear"
|
||||
"" }; // <- mark of end
|
||||
sameMethods.Insert( names );
|
||||
}
|
||||
|
@ -190,6 +190,24 @@ GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh()
|
||||
return aShapeObj._retn();
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Remove all nodes and elements
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
void SMESH_Mesh_i::Clear() throw (SALOME::SALOME_Exception)
|
||||
{
|
||||
Unexpect aCatch(SALOME_SalomeException);
|
||||
try {
|
||||
_impl->Clear();
|
||||
}
|
||||
catch(SALOME_Exception & S_ex) {
|
||||
THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
|
||||
}
|
||||
TPythonDump() << _this() << ".Clear()";
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
|
@ -74,6 +74,9 @@ public:
|
||||
GEOM::GEOM_Object_ptr GetShapeToMesh()
|
||||
throw (SALOME::SALOME_Exception);
|
||||
|
||||
void Clear()
|
||||
throw (SALOME::SALOME_Exception);
|
||||
|
||||
SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
|
||||
SMESH::SMESH_Hypothesis_ptr anHyp)
|
||||
throw (SALOME::SALOME_Exception);
|
||||
|
@ -885,8 +885,18 @@ class Mesh:
|
||||
pass
|
||||
return ok
|
||||
|
||||
## Removes all nodes and elements
|
||||
# @ingroup l2_construct
|
||||
def Clear(self):
|
||||
self.mesh.Clear()
|
||||
if salome.sg.hasDesktop():
|
||||
smeshgui = salome.ImportComponentGUI("SMESH")
|
||||
smeshgui.Init(salome.myStudyId)
|
||||
smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), False, True )
|
||||
salome.sg.updateObjBrowser(1)
|
||||
|
||||
## Computes a tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
|
||||
# The parameter \a fineness [0,-1] defines mesh fineness
|
||||
# @param fineness [0,-1] defines mesh fineness
|
||||
# @return True or False
|
||||
# @ingroup l3_algos_basic
|
||||
def AutomaticTetrahedralization(self, fineness=0):
|
||||
@ -903,7 +913,7 @@ class Mesh:
|
||||
return self.Compute()
|
||||
|
||||
## Computes an hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
|
||||
# The parameter \a fineness [0,-1] defines mesh fineness
|
||||
# @param fineness [0,-1] defines mesh fineness
|
||||
# @return True or False
|
||||
# @ingroup l3_algos_basic
|
||||
def AutomaticHexahedralization(self, fineness=0):
|
||||
@ -3193,129 +3203,100 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
print "Netgen 1D-2D algo doesn't support this hypothesis"
|
||||
return None
|
||||
|
||||
## Sets a way to define size of mesh elements to generate
|
||||
# @param thePhysicalMesh is: DefaultSize or Custom
|
||||
# Parameter of BLSURF algo
|
||||
## Sets a way to define size of mesh elements to generate.
|
||||
# @param thePhysicalMesh is: DefaultSize or Custom.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetPhysicalMesh(self, thePhysicalMesh=DefaultSize):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetPhysicalMesh(thePhysicalMesh)
|
||||
|
||||
## Sets size of mesh elements to generate
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetPhysicalMesh(thePhysicalMesh)
|
||||
|
||||
## Sets size of mesh elements to generate.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetPhySize(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetPhySize(theVal)
|
||||
|
||||
## Sets lower boundary of mesh element size (PhySize)
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetPhySize(theVal)
|
||||
|
||||
## Sets lower boundary of mesh element size (PhySize).
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetPhyMin(self, theVal=-1):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetPhyMin(theVal)
|
||||
|
||||
## Sets upper boundary of mesh element size (PhySize)
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetPhyMin(theVal)
|
||||
|
||||
## Sets upper boundary of mesh element size (PhySize).
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetPhyMax(self, theVal=-1):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetPhyMax(theVal)
|
||||
|
||||
## Sets a way to define maximum angular deflection of mesh from CAD model
|
||||
# @param theGeometricMesh is: DefaultGeom or Custom
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetPhyMax(theVal)
|
||||
|
||||
## Sets a way to define maximum angular deflection of mesh from CAD model.
|
||||
# @param theGeometricMesh is: DefaultGeom or Custom
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetGeometricMesh(self, theGeometricMesh=0):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params.GetPhysicalMesh() == 0: theGeometricMesh = 1
|
||||
# Parameter of BLSURF algo
|
||||
if self.Parameters().GetPhysicalMesh() == 0: theGeometricMesh = 1
|
||||
self.params.SetGeometricMesh(theGeometricMesh)
|
||||
|
||||
## Sets angular deflection (in degrees) of a mesh face from CAD surface
|
||||
# Parameter of BLSURF algo
|
||||
## Sets angular deflection (in degrees) of a mesh face from CAD surface.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetAngleMeshS(self, theVal=_angleMeshS):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params.GetGeometricMesh() == 0: theVal = self._angleMeshS
|
||||
# Parameter of BLSURF algo
|
||||
if self.Parameters().GetGeometricMesh() == 0: theVal = self._angleMeshS
|
||||
self.params.SetAngleMeshS(theVal)
|
||||
|
||||
## Sets angular deflection (in degrees) of a mesh edge from CAD curve
|
||||
# Parameter of BLSURF algo
|
||||
## Sets angular deflection (in degrees) of a mesh edge from CAD curve.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetAngleMeshC(self, theVal=_angleMeshS):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params.GetGeometricMesh() == 0: theVal = self._angleMeshS
|
||||
# Parameter of BLSURF algo
|
||||
if self.Parameters().GetGeometricMesh() == 0: theVal = self._angleMeshS
|
||||
self.params.SetAngleMeshC(theVal)
|
||||
|
||||
## Sets lower boundary of mesh element size computed to respect angular deflection
|
||||
# Parameter of BLSURF algo
|
||||
## Sets lower boundary of mesh element size computed to respect angular deflection.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetGeoMin(self, theVal=-1):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetGeoMin(theVal)
|
||||
|
||||
## Sets upper boundary of mesh element size computed to respect angular deflection
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetGeoMin(theVal)
|
||||
|
||||
## Sets upper boundary of mesh element size computed to respect angular deflection.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetGeoMax(self, theVal=-1):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetGeoMax(theVal)
|
||||
|
||||
## Sets maximal allowed ratio between the lengths of two adjacent edges
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetGeoMax(theVal)
|
||||
|
||||
## Sets maximal allowed ratio between the lengths of two adjacent edges.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetGradation(self, theVal=_gradation):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params.GetGeometricMesh() == 0: theVal = self._gradation
|
||||
# Parameter of BLSURF algo
|
||||
if self.Parameters().GetGeometricMesh() == 0: theVal = self._gradation
|
||||
self.params.SetGradation(theVal)
|
||||
|
||||
## Sets topology usage way defining how mesh conformity is assured:
|
||||
# FromCAD, PreProcess or PreProcessPlus
|
||||
# FromCAD - mesh conformity is assured by conformity of a shape
|
||||
# PreProcess or PreProcessPlus - by pre-processing a CAD model
|
||||
# Parameter of BLSURF algo
|
||||
## Sets topology usage way.
|
||||
# @param way defines how mesh conformity is assured <ul>
|
||||
# <li>FromCAD - mesh conformity is assured by conformity of a shape</li>
|
||||
# <li>PreProcess or PreProcessPlus - by pre-processing a CAD model</li></ul>
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetTopology(self, way):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetTopology(way)
|
||||
|
||||
## To respect geometrical edges or not
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetTopology(way)
|
||||
|
||||
## To respect geometrical edges or not.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetDecimesh(self, toIgnoreEdges=False):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetDecimesh(toIgnoreEdges)
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetDecimesh(toIgnoreEdges)
|
||||
|
||||
## Sets verbosity level in the range 0 to 100.
|
||||
# Parameter of BLSURF algo
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetVerbosity(self, level):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetVerbosity(level)
|
||||
|
||||
## Sets advanced option value
|
||||
# Parameter of BLSURF algo
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetOptionValue(self, optionName, value):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetOptionValue(optionName,level)
|
||||
self.Parameters().SetVerbosity(level)
|
||||
|
||||
## Sets QuadAllowed flag
|
||||
#
|
||||
## Sets advanced option value.
|
||||
# @ingroup l3_hypos_blsurf
|
||||
def SetOptionValue(self, optionName, level):
|
||||
# Parameter of BLSURF algo
|
||||
self.Parameters().SetOptionValue(optionName,level)
|
||||
|
||||
## Sets QuadAllowed flag.
|
||||
# Only for algoType == NETGEN || NETGEN_2D || BLSURF
|
||||
# @ingroup l3_hypos_netgen l3_hypos_blsurf
|
||||
def SetQuadAllowed(self, toAllow=True):
|
||||
@ -3330,17 +3311,15 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
pass
|
||||
pass
|
||||
return
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params:
|
||||
if self.Parameters():
|
||||
self.params.SetQuadAllowed(toAllow)
|
||||
return
|
||||
|
||||
## Defines "Netgen 2D Parameters" hypothesis
|
||||
#
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def Parameters(self):
|
||||
# Only for algoType == NETGEN
|
||||
if self.params:
|
||||
return self.params
|
||||
if self.algoType == NETGEN:
|
||||
@ -3365,9 +3344,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetMaxSize(self, theSize):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetMaxSize(theSize)
|
||||
|
||||
## Sets SecondOrder flag
|
||||
@ -3375,9 +3352,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetSecondOrder(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetSecondOrder(theVal)
|
||||
|
||||
## Sets Optimize flag
|
||||
@ -3385,9 +3360,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetOptimize(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetOptimize(theVal)
|
||||
|
||||
## Sets Fineness
|
||||
@ -3397,9 +3370,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetFineness(self, theFineness):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetFineness(theFineness)
|
||||
|
||||
## Sets GrowthRate
|
||||
@ -3407,9 +3378,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetGrowthRate(self, theRate):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetGrowthRate(theRate)
|
||||
|
||||
## Sets NbSegPerEdge
|
||||
@ -3417,9 +3386,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetNbSegPerEdge(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetNbSegPerEdge(theVal)
|
||||
|
||||
## Sets NbSegPerRadius
|
||||
@ -3427,9 +3394,7 @@ class Mesh_Triangle(Mesh_Algorithm):
|
||||
# Only for algoType == NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetNbSegPerRadius(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
if self.params is not None:
|
||||
if self.Parameters():
|
||||
self.params.SetNbSegPerRadius(theVal)
|
||||
|
||||
pass
|
||||
@ -3508,6 +3473,8 @@ class Mesh_Tetrahedron(Mesh_Algorithm):
|
||||
## Defines "Netgen 3D Parameters" hypothesis
|
||||
# @ingroup l3_hypos_netgen
|
||||
def Parameters(self):
|
||||
if self.params:
|
||||
return self.params
|
||||
if (self.algoType == FULL_NETGEN):
|
||||
self.params = self.Hypothesis("NETGEN_Parameters", [],
|
||||
"libNETGENEngine.so", UseExisting=0)
|
||||
@ -3524,25 +3491,19 @@ class Mesh_Tetrahedron(Mesh_Algorithm):
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetMaxSize(self, theSize):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetMaxSize(theSize)
|
||||
self.Parameters().SetMaxSize(theSize)
|
||||
|
||||
## Sets SecondOrder flag
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetSecondOrder(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetSecondOrder(theVal)
|
||||
self.Parameters().SetSecondOrder(theVal)
|
||||
|
||||
## Sets Optimize flag
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetOptimize(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetOptimize(theVal)
|
||||
self.Parameters().SetOptimize(theVal)
|
||||
|
||||
## Sets Fineness
|
||||
# @param theFineness is:
|
||||
@ -3550,114 +3511,96 @@ class Mesh_Tetrahedron(Mesh_Algorithm):
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetFineness(self, theFineness):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetFineness(theFineness)
|
||||
self.Parameters().SetFineness(theFineness)
|
||||
|
||||
## Sets GrowthRate
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetGrowthRate(self, theRate):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetGrowthRate(theRate)
|
||||
self.Parameters().SetGrowthRate(theRate)
|
||||
|
||||
## Sets NbSegPerEdge
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetNbSegPerEdge(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetNbSegPerEdge(theVal)
|
||||
self.Parameters().SetNbSegPerEdge(theVal)
|
||||
|
||||
## Sets NbSegPerRadius
|
||||
# Parameter of FULL_NETGEN
|
||||
# @ingroup l3_hypos_netgen
|
||||
def SetNbSegPerRadius(self, theVal):
|
||||
if self.params == 0:
|
||||
self.Parameters()
|
||||
self.params.SetNbSegPerRadius(theVal)
|
||||
self.Parameters().SetNbSegPerRadius(theVal)
|
||||
|
||||
## To mesh "holes" in a solid or not. Default is to mesh.
|
||||
# Parameter of GHS3D
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetToMeshHoles(self, toMesh):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetToMeshHoles(toMesh)
|
||||
# Parameter of GHS3D
|
||||
self.Parameters().SetToMeshHoles(toMesh)
|
||||
|
||||
## Set Optimization level:
|
||||
# None_Optimization, Light_Optimization, Medium_Optimization, Strong_Optimization.
|
||||
# Default is Medium_Optimization
|
||||
# Parameter of GHS3D
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetOptimizationLevel(self, level):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetOptimizationLevel(level)
|
||||
# Parameter of GHS3D
|
||||
self.Parameters().SetOptimizationLevel(level)
|
||||
|
||||
## Maximal size of memory to be used by the algorithm (in Megabytes).
|
||||
# Advanced parameter of GHS3D
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetMaximumMemory(self, MB):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetMaximumMemory(MB)
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetMaximumMemory(MB)
|
||||
|
||||
## Initial size of memory to be used by the algorithm (in Megabytes) in
|
||||
# automatic memory adjustment mode
|
||||
# Advanced parameter of GHS3D
|
||||
# automatic memory adjustment mode.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetInitialMemory(self, MB):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetInitialMemory(MB)
|
||||
|
||||
## Path to working directory
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetInitialMemory(MB)
|
||||
|
||||
## Path to working directory.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetWorkingDirectory(self, path):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetWorkingDirectory(path)
|
||||
|
||||
## To keep working files or remove them. Log file remains in case of errors anyway
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetWorkingDirectory(path)
|
||||
|
||||
## To keep working files or remove them. Log file remains in case of errors anyway.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetKeepFiles(self, toKeep):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetKeepFiles(toKeep)
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetKeepFiles(toKeep)
|
||||
|
||||
## To set verbose level [0-10]
|
||||
# 0 - no standard output,
|
||||
# 2 - prints the data, quality statistics of the skin and final meshes and
|
||||
## To set verbose level [0-10]. <ul>
|
||||
#<li> 0 - no standard output,
|
||||
#<li> 2 - prints the data, quality statistics of the skin and final meshes and
|
||||
# indicates when the final mesh is being saved. In addition the software
|
||||
# gives indication regarding the CPU time.
|
||||
# 10 - same as 2 plus the main steps in the computation, quality statistics
|
||||
#<li>10 - same as 2 plus the main steps in the computation, quality statistics
|
||||
# histogram of the skin mesh, quality statistics histogram together with
|
||||
# the characteristics of the final mesh.
|
||||
# Advanced parameter of GHS3D
|
||||
# the characteristics of the final mesh.</ul>
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetVerboseLevel(self, level):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetVerboseLevel(level)
|
||||
|
||||
## To create new nodes
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetVerboseLevel(level)
|
||||
|
||||
## To create new nodes.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetToCreateNewNodes(self, toCreate):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetToCreateNewNodes(toCreate)
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetToCreateNewNodes(toCreate)
|
||||
|
||||
## To use boundary recovery version which tries to create mesh on a very poor
|
||||
# quality surface mesh
|
||||
# Advanced parameter of GHS3D
|
||||
# quality surface mesh.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetToUseBoundaryRecoveryVersion(self, toUse):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetToUseBoundaryRecoveryVersion(toUse)
|
||||
|
||||
## To set hidden/undocumented/advanced options
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetToUseBoundaryRecoveryVersion(toUse)
|
||||
|
||||
## Sets command line option as text.
|
||||
# @ingroup l3_hypos_ghs3dh
|
||||
def SetTextOption(self, option):
|
||||
if self.params == 0: self.Parameters()
|
||||
self.params.SetTextOption(option)
|
||||
# Advanced parameter of GHS3D
|
||||
self.Parameters().SetTextOption(option)
|
||||
|
||||
# Public class: Mesh_Hexahedron
|
||||
# ------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user