bos #20643 EDF 22805 - Pb Viscous Layer

1) Fix computing average thickness of layers
2) Don't block an edge with not limited _maxLen if it not reached an obstacle yet
This commit is contained in:
eap 2021-08-27 18:45:00 +03:00
parent 3d563f7964
commit 52762f2639

View File

@ -4934,7 +4934,7 @@ bool _ViscousBuilder::inflate(_SolidData& data)
if ( eos._edges[i]->_nodes.size() > 1 ) if ( eos._edges[i]->_nodes.size() > 1 )
avgThick += Min( 1., eos._edges[i]->_len / shapeTgtThick ); avgThick += Min( 1., eos._edges[i]->_len / shapeTgtThick );
else else
avgThick += shapeTgtThick; avgThick += 1;
nbActiveEdges += ( ! eos._edges[i]->Is( _LayerEdge::BLOCKED )); nbActiveEdges += ( ! eos._edges[i]->Is( _LayerEdge::BLOCKED ));
} }
} }
@ -5448,8 +5448,11 @@ bool _ViscousBuilder::smoothAndCheck(_SolidData& data,
// intersection not ignored // intersection not ignored
if ( toBlockInfaltion && double minDist = 0;
dist < ( eos._edges[i]->_len * theThickToIntersection )) if ( eos._edges[i]->_maxLen < 0.99 * eos._hyp.GetTotalThickness() ) // limited length
minDist = eos._edges[i]->_len * theThickToIntersection;
if ( toBlockInfaltion && dist < minDist )
{ {
if ( is1stBlocked ) { is1stBlocked = false; // debug if ( is1stBlocked ) { is1stBlocked = false; // debug
dumpFunction(SMESH_Comment("blockIntersected") <<data._index<<"_InfStep"<<infStep); dumpFunction(SMESH_Comment("blockIntersected") <<data._index<<"_InfStep"<<infStep);