From 34356a683ef86d2a02c0f0760ec6819d02757cf4 Mon Sep 17 00:00:00 2001 From: carlopav <47068848+carlopav@users.noreply.github.com> Date: Sun, 27 Jan 2019 00:15:04 +0100 Subject: [PATCH] Update DraftTools.py Small fix to edit tool when editing arcs. --- src/Mod/Draft/DraftTools.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 2efaba405e..9c2beaa56f 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -4050,6 +4050,9 @@ class Edit(Modifier): self.editpoints.append(self.obj.Placement.Base) if self.obj.FirstAngle == self.obj.LastAngle: self.editpoints.append(self.obj.Shape.Vertexes[0].Point) + else: + self.editpoints.append(self.obj.Shape.Vertexes[0].Point) + self.editpoints.append(self.obj.Shape.Vertexes[1].Point) elif Draft.getType(self.obj) == "Rectangle": self.editpoints.append(self.obj.Placement.Base) self.editpoints.append(self.obj.Shape.Vertexes[2].Point) @@ -4282,15 +4285,31 @@ class Edit(Modifier): self.trackers[self.editing].set(v) elif Draft.getType(self.obj) == "Circle": delta = v.sub(self.obj.Placement.Base) + deltaX = v[0]-self.obj.Placement.Base[0] + deltaY = v[1]-self.obj.Placement.Base[1] + dangle = math.degrees(math.atan2(deltaY,deltaX)) if self.editing == 0: p = self.obj.Placement p.move(delta) self.obj.Placement = p self.trackers[0].set(self.obj.Placement.Base) + if not self.obj.FirstAngle == self.obj.LastAngle: + self.trackers[2].set(self.obj.Shape.Vertexes[1].Point) elif self.editing == 1: + if self.obj.FirstAngle == self.obj.LastAngle: + self.obj.Radius = delta.Length + self.obj.recompute() + else: + self.obj.Radius = delta.Length + self.obj.FirstAngle=dangle + self.obj.recompute() + self.trackers[2].set(self.obj.Shape.Vertexes[1].Point) + elif self.editing == 2: self.obj.Radius = delta.Length + self.obj.LastAngle=dangle self.obj.recompute() - self.trackers[1].set(self.obj.Shape.Vertexes[0].Point) + self.trackers[2].set(self.obj.Shape.Vertexes[1].Point) + self.trackers[1].set(self.obj.Shape.Vertexes[0].Point) elif Draft.getType(self.obj) == "Rectangle": delta = v.sub(self.obj.Placement.Base) if self.editing == 0: