22812: EDF 9218 SMESH: An empty group is created when using the duplicate nodes and/or elements

This commit is contained in:
eap 2014-12-08 20:18:59 +03:00
parent 3cc259fbef
commit a00f90ebab
4 changed files with 15 additions and 4 deletions

View File

@ -3,8 +3,11 @@
\page extrusion_page Extrusion \page extrusion_page Extrusion
\n Extrusion is used to build mesh elements of plus one \n Extrusion is used to build mesh elements of plus one
dimension than the input ones. Any node, segment or 2D element can be dimension than the input ones. Boundary elements around elements of
extruded. Each type of elements has a corresponding type of extruded elements: plus one dimension are additionally created. All created elements
can be automatically grouped.
<p>Any node, segment or 2D element can be extruded. Each type of
elements is extruded into a corresponding type of result elements:
<table> <table>
<tr><td><b>Extruded element</b></td><td><b> Result element </b></td></tr> <tr><td><b>Extruded element</b></td><td><b> Result element </b></td></tr>
<tr><td>Node </td><td> Segment </td></tr> <tr><td>Node </td><td> Segment </td></tr>

View File

@ -11247,6 +11247,14 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
} }
} }
// Remove empty groups (issue 0022812)
std::map<std::string, SMESH_Group*>::iterator name_group = mapOfJunctionGroups.begin();
for ( ; name_group != mapOfJunctionGroups.end(); ++name_group )
{
if ( name_group->second && name_group->second->GetGroupDS()->IsEmpty() )
myMesh->RemoveGroup( name_group->second->GetGroupDS()->GetID() );
}
meshDS->CleanDownWardConnectivity(); // Mesh has been modified, downward connectivity is no more usable, free memory meshDS->CleanDownWardConnectivity(); // Mesh has been modified, downward connectivity is no more usable, free memory
grid->BuildLinks(); grid->BuildLinks();

View File

@ -3391,7 +3391,7 @@ class Mesh:
# @param theSubMesh a group or a sub-mesh to convert; WARNING: in this case the mesh can become not conformal # @param theSubMesh a group or a sub-mesh to convert; WARNING: in this case the mesh can become not conformal
# @param theToBiQuad If True, converts the mesh to bi-quadratic # @param theToBiQuad If True, converts the mesh to bi-quadratic
# @ingroup l2_modif_tofromqu # @ingroup l2_modif_tofromqu
def ConvertToQuadratic(self, theForce3d, theSubMesh=None, theToBiQuad=False): def ConvertToQuadratic(self, theForce3d=False, theSubMesh=None, theToBiQuad=False):
if isinstance( theSubMesh, Mesh ): if isinstance( theSubMesh, Mesh ):
theSubMesh = theSubMesh.mesh theSubMesh = theSubMesh.mesh
if theToBiQuad: if theToBiQuad: