mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-03-01 00:25:38 +05:00
19997: Compute does not work in script, ok in GUI
fix MakeComputed() for group projection
This commit is contained in:
parent
94e286c822
commit
f705b9c354
@ -3804,11 +3804,9 @@ static bool clearSubMesh( SMESH_Mesh* theMesh,
|
||||
bool removed = false;
|
||||
if ( SMESH_subMesh * aSubMesh = theMesh->GetSubMeshContaining( theShape ))
|
||||
{
|
||||
if ( aSubMesh->GetSubMeshDS() ) {
|
||||
removed =
|
||||
aSubMesh->GetSubMeshDS()->NbElements() || aSubMesh->GetSubMeshDS()->NbNodes();
|
||||
removed = !aSubMesh->IsEmpty();
|
||||
if ( removed )
|
||||
aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
|
||||
}
|
||||
}
|
||||
else {
|
||||
SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
|
||||
|
@ -1635,7 +1635,17 @@ bool StdMeshers_ProjectionUtils::MakeComputed(SMESH_subMesh * sm, const int iter
|
||||
SMESH_Gen* gen = mesh->GetGen();
|
||||
SMESH_Algo* algo = gen->GetAlgo( *mesh, sm->GetSubShape() );
|
||||
if ( !algo )
|
||||
RETURN_BAD_RESULT("No algo assigned to submesh " << sm->GetId());
|
||||
{
|
||||
if ( sm->GetSubShape().ShapeType() != TopAbs_COMPOUND )
|
||||
RETURN_BAD_RESULT("No algo assigned to submesh " << sm->GetId());
|
||||
// group
|
||||
bool computed = true;
|
||||
for ( TopoDS_Iterator grMember( sm->GetSubShape() ); grMember.More(); grMember.Next())
|
||||
if ( SMESH_subMesh* grSub = mesh->GetSubMesh( grMember.Value() ))
|
||||
if ( !MakeComputed( grSub, iterationNb + 1 ))
|
||||
computed = false;
|
||||
return computed;
|
||||
}
|
||||
|
||||
string algoType = algo->GetName();
|
||||
if ( algoType.substr(0, 11) != "Projection_")
|
||||
@ -1679,7 +1689,10 @@ bool StdMeshers_ProjectionUtils::MakeComputed(SMESH_subMesh * sm, const int iter
|
||||
if ( !srcMesh )
|
||||
srcMesh = mesh;
|
||||
|
||||
return MakeComputed( srcMesh->GetSubMesh( srcShape ), iterationNb + 1 );
|
||||
if ( MakeComputed( srcMesh->GetSubMesh( srcShape ), iterationNb + 1 ))
|
||||
return gen->Compute( *mesh, sm->GetSubShape() );
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user