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
\n Extrusion is used to build mesh elements of plus one
dimension than the input ones. Any node, segment or 2D element can be
extruded. Each type of elements has a corresponding type of extruded elements:
dimension than the input ones. Boundary elements around elements of
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>
<tr><td><b>Extruded element</b></td><td><b> Result element </b></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
grid->BuildLinks();

View File

@ -602,7 +602,7 @@ void SMESHGUI_DuplicateNodesDlg::onSelectionChanged()
break;
case 3:
ok = ( aGroupType == SMESH::VOLUME ||
aGroupType == SMESH::FACE );
aGroupType == SMESH::FACE );
break;
}
}

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 theToBiQuad If True, converts the mesh to bi-quadratic
# @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 ):
theSubMesh = theSubMesh.mesh
if theToBiQuad: