From 612bde7701f60ac1bd72ad3084ad08c0fdc38448 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 15 Jan 2017 17:55:11 -0200 Subject: [PATCH] Draft: Fixed bug in line UI - fixes #2860 --- src/Mod/Draft/DraftGui.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 0f36ab721a..953c28b309 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -251,6 +251,7 @@ class DraftToolBar: self.mask = None self.alock = False self.angle = None + self.avalue = None self.x = 0 self.y = 0 self.z = 0 @@ -1791,16 +1792,24 @@ class DraftToolBar: def changeLengthValue(self,d): v = FreeCAD.Vector(self.x,self.y,self.z) + if not v.Length: + if self.angle: + v = FreeCAD.Vector(self.angle) + else: + v = FreeCAD.Vector(FreeCAD.DraftWorkingPlane.u) + if self.avalue: + v = DraftVecUtils.rotate(v,math.radians(d),FreeCAD.DraftWorkingPlane.axis) v = DraftVecUtils.scaleTo(v,d) self.xValue.setText(displayExternal(v.x,None,'Length')) self.yValue.setText(displayExternal(v.y,None,'Length')) self.zValue.setText(displayExternal(v.z,None,'Length')) def changeAngleValue(self,d): + self.avalue = d v = FreeCAD.Vector(self.x,self.y,self.z) a = DraftVecUtils.angle(v,FreeCAD.DraftWorkingPlane.u,FreeCAD.DraftWorkingPlane.axis) a = math.radians(d)+a - v=DraftVecUtils.rotate(v,a,FreeCAD.DraftWorkingPlane.axis) + v = DraftVecUtils.rotate(v,a,FreeCAD.DraftWorkingPlane.axis) self.angle = v self.xValue.setText(displayExternal(v.x,None,'Length')) self.yValue.setText(displayExternal(v.y,None,'Length'))