diff --git a/src/SMESH/SMESH_MeshEditor.cxx b/src/SMESH/SMESH_MeshEditor.cxx index 981458a6a..671218aeb 100644 --- a/src/SMESH/SMESH_MeshEditor.cxx +++ b/src/SMESH/SMESH_MeshEditor.cxx @@ -13231,13 +13231,17 @@ void SMESH_MeshEditor::MakePolyLine( TListOfPolySegments& theSegments, if ( polySeg.myMidProjPoint.Distance( pMid ) < Precision::Confusion() ) { SMESH_MeshAlgos::FaceNormal( face, const_cast< gp_XYZ& >( polySeg.myVector.XYZ() )); - polySeg.myMidProjPoint = pMid + polySeg.myVector.XYZ(); + polySeg.myMidProjPoint = pMid + polySeg.myVector.XYZ() * ( p1 - p2 ).Modulus() * 0.333; } else { polySeg.myVector = polySeg.myMidProjPoint.XYZ() - pMid; } } + else + { + polySeg.myVector = plnNorm ^ ( p1 - p2 ); + } } // assure that inverse elements are constructed, avoid their concurrent building in threads