diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index 446e50b23..f5cb2f7f8 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -1101,6 +1101,8 @@ def getNormal(shape): vdir = Draft.get3DView().getViewDirection() if n.getAngle(vdir) < 0.78: n = n.negative() + if not n.Length: + return None return n def getRotation(v1,v2=FreeCAD.Vector(0,0,1)): diff --git a/src/Mod/Draft/WorkingPlane.py b/src/Mod/Draft/WorkingPlane.py index 9e77cbb76..e92bf26d4 100644 --- a/src/Mod/Draft/WorkingPlane.py +++ b/src/Mod/Draft/WorkingPlane.py @@ -123,10 +123,12 @@ class plane: self.doc = FreeCAD.ActiveDocument self.axis = axis; self.axis.normalize() - if (DraftVecUtils.equals(axis, Vector(1,0,0))): + if axis.getAngle(Vector(1,0,0)) < 0.00001: + self.axis = Vector(1,0,0) self.u = Vector(0,1,0) self.v = Vector(0,0,1) - elif (DraftVecUtils.equals(axis, Vector(-1,0,0))): + elif axis.getAngle(Vector(-1,0,0)) < 0.00001: + self.axos = Vector(-1,0,0) self.u = Vector(0,-1,0) self.v = Vector(0,0,1) elif upvec: