From 4b18a1018bae88256a9acf9e3abc33dea9ea0b05 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 1 Apr 2024 19:35:16 +0200 Subject: [PATCH] FEM: Handle unknown exception when applying a constraint to a B-Spline surface Fixes #13213 An OCC exception is raised when trying to normalize a null vector. The solution is to check the square length before normalizing it --- src/Mod/Fem/App/FemConstraint.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Mod/Fem/App/FemConstraint.cpp b/src/Mod/Fem/App/FemConstraint.cpp index 816151f7bc..756b8ab1ac 100644 --- a/src/Mod/Fem/App/FemConstraint.cpp +++ b/src/Mod/Fem/App/FemConstraint.cpp @@ -430,7 +430,9 @@ bool Constraint::getPoints(std::vector& points, if (classifier.State() != TopAbs_OUT) { points.emplace_back(p.X(), p.Y(), p.Z()); props.Normal(u, v, center, normal); - normal.Normalize(); + if (normal.SquareMagnitude() > 0.0) { + normal.Normalize(); + } normals.emplace_back(normal.X(), normal.Y(), normal.Z()); } };