mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 17:30:35 +05:00
SALOME Forum bug: http://www.salome-platform.org/forum/forum_10/967838025
Do not report a compute error if a node on VERTEX is not shared by any segment because segments on seam EDGE are assigned later
This commit is contained in:
parent
b14fd3f9bd
commit
b860f3ffbd
@ -226,7 +226,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
|
|||||||
typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_NodeIteratorPtr > iterator;
|
typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_NodeIteratorPtr > iterator;
|
||||||
existingNodes.insert( iterator( eSM->GetNodes() ), iterator() );
|
existingNodes.insert( iterator( eSM->GetNodes() ), iterator() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// octree to find existing nodes
|
// octree to find existing nodes
|
||||||
SMESH_OctreeNode existingNodeOcTr( existingNodes );
|
SMESH_OctreeNode existingNodeOcTr( existingNodes );
|
||||||
@ -513,7 +513,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
|
|||||||
int sId = editor.FindShape( edge );
|
int sId = editor.FindShape( edge );
|
||||||
nbEdges += subShapeIDs.count( sId );
|
nbEdges += subShapeIDs.count( sId );
|
||||||
}
|
}
|
||||||
if ( nbEdges < 2 )
|
if ( nbEdges < 2 && !helper.IsRealSeam( s ))
|
||||||
return false; // weird
|
return false; // weird
|
||||||
if ( nbEdges > 2 )
|
if ( nbEdges > 2 )
|
||||||
return error( COMPERR_BAD_INPUT_MESH, "Source elements overlap one another");
|
return error( COMPERR_BAD_INPUT_MESH, "Source elements overlap one another");
|
||||||
@ -601,8 +601,8 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
|
|||||||
for ( size_t iE = 0; iE < edges.size(); ++iE )
|
for ( size_t iE = 0; iE < edges.size(); ++iE )
|
||||||
{
|
{
|
||||||
SMESH_subMesh * sm = theMesh.GetSubMesh( edges[iE] );
|
SMESH_subMesh * sm = theMesh.GetSubMesh( edges[iE] );
|
||||||
if ( SMESH_Algo::isDegenerated( edges[iE] ))
|
// if ( SMESH_Algo::isDegenerated( edges[iE] ))
|
||||||
sm->SetIsAlwaysComputed( true );
|
// sm->SetIsAlwaysComputed( true );
|
||||||
sm->ComputeStateEngine(SMESH_subMesh::CHECK_COMPUTE_STATE);
|
sm->ComputeStateEngine(SMESH_subMesh::CHECK_COMPUTE_STATE);
|
||||||
if ( sm->GetComputeState() != SMESH_subMesh::COMPUTE_OK )
|
if ( sm->GetComputeState() != SMESH_subMesh::COMPUTE_OK )
|
||||||
return error(SMESH_Comment("Failed to create segments on the edge ")
|
return error(SMESH_Comment("Failed to create segments on the edge ")
|
||||||
|
Loading…
Reference in New Issue
Block a user