From 4fe4792f4d4eb81e2ef5d18e16b80fa0abd5a92c Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Thu, 16 Feb 2017 23:52:34 +0100 Subject: [PATCH] Sketcher: Fix zero curvature normal exception --- src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp | 2 +- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp index 27b6a5031..0d5f4517c 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp @@ -406,7 +406,7 @@ void CmdSketcherIncreaseDegree::activated(int iMsg) selection[0].getFeatName(),GeoId); } } - + commitCommand(); ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 3542189fc..0e4e889db 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -3619,7 +3619,12 @@ void ViewProviderSketch::draw(bool temp /*=false*/, bool rebuildinformationlayer if(curvaturelist[i] > maxcurv) maxcurv = curvaturelist[i]; - spline->normalAt(paramlist[i],normallist[i]); + try { + spline->normalAt(paramlist[i],normallist[i]); + } + catch(Base::Exception) { + normallist[i] = Base::Vector3d(0,0,0); + } double temp = ( pointatcurvelist[i] - midp ).Length();