diff --git a/libsrc/occ/occmeshsurf.cpp b/libsrc/occ/occmeshsurf.cpp index a1f60db6..56fbf07b 100644 --- a/libsrc/occ/occmeshsurf.cpp +++ b/libsrc/occ/occmeshsurf.cpp @@ -673,13 +673,14 @@ namespace netgen if (surfi > 0) { - double u = gi1.u+secpoint*(gi2.u-gi1.u); double v = gi1.v+secpoint*(gi2.v-gi1.v); - - if (!geometry.FastProject (surfi, hnewp, u, v)) + + auto savept = hnewp; + if (!geometry.FastProject (surfi, hnewp, u, v) || Dist(hnewp, savept) > Dist(p1,p2)) { - // cout << "Fast projection to surface fails! Using OCC projection" << endl; + // cout << "Fast projection to surface fails! Using OCC projection" << endl; + hnewp = savept; geometry.Project (surfi, hnewp); }