diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index 6979faceab..368dfe338e 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -454,6 +454,16 @@ bool GeomCurve::closestParameter(const Base::Vector3d& point, double &u) const return true; } } + catch (StdFail_NotDone e) { // projection does not exist on trimmer curve, let's try basis curve + closestParameterToBasicCurve(point,u); + + if(abs(u-c->FirstParameter()) < abs(u-c->LastParameter())) + u = c->FirstParameter(); + else + u = c->LastParameter(); + + return true; + } catch (Standard_Failure& e) { throw Base::RuntimeError(e.GetMessageString());