From f40f1fde59d670d19f0688a49ebd1ec602caa187 Mon Sep 17 00:00:00 2001 From: carlopav <47068848+carlopav@users.noreply.github.com> Date: Wed, 13 Feb 2019 16:40:26 +0100 Subject: [PATCH] Update Edit Tool Arc 3 points and minor other fixes --- src/Mod/Draft/DraftGui.py | 8 ++++---- src/Mod/Draft/DraftTools.py | 21 +++++++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 3d76de4076..16fc091252 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -504,7 +504,7 @@ class DraftToolBar: self.sharpButton = self._pushbutton("sharpButton", self.layout, icon="Draft_BezSharpNode", width=22, checkable=True) self.tangentButton = self._pushbutton("tangentButton", self.layout, icon="Draft_BezTanNode", width=22, checkable=True) self.symmetricButton = self._pushbutton("symmetricButton", self.layout, icon="Draft_BezSymNode", width=22, checkable=True) - self.arc3PtButton = self._pushbutton("arc3PtButton", self.layout, icon="Draft_BezSymNode", width=22, checkable=True) + self.arc3PtButton = self._pushbutton("arc3PtButton", self.layout, icon="Draft_Arc", width=22, checkable=True) # point @@ -649,7 +649,7 @@ class DraftToolBar: QtCore.QObject.connect(self.sharpButton,QtCore.SIGNAL("toggled(bool)"),self.setSharpMode) QtCore.QObject.connect(self.tangentButton,QtCore.SIGNAL("toggled(bool)"),self.setTangentMode) QtCore.QObject.connect(self.symmetricButton,QtCore.SIGNAL("toggled(bool)"),self.setSymmetricMode) - QtCore.QObject.connect(self.arc3PtButton,QtCore.SIGNAL("toggled(bool)"),self.arc3PtMode) + QtCore.QObject.connect(self.arc3PtButton,QtCore.SIGNAL("toggled(bool)"),self.setArc3PtMode) QtCore.QObject.connect(self.finishButton,QtCore.SIGNAL("pressed()"),self.finish) QtCore.QObject.connect(self.closeButton,QtCore.SIGNAL("pressed()"),self.closeLine) QtCore.QObject.connect(self.wipeButton,QtCore.SIGNAL("pressed()"),self.wipeLine) @@ -794,7 +794,7 @@ class DraftToolBar: self.sharpButton.setToolTip(translate("draft", "Make Bezier node sharp")) self.tangentButton.setToolTip(translate("draft", "Make Bezier node tangent")) self.symmetricButton.setToolTip(translate("draft", "Make Bezier node symmetric")) - self.arc3PtButton.setToolTip(translate("draft", "Activate 3 point arc editing")) + self.arc3PtButton.setToolTip(translate("draft", "Toggle radius and angles arc editing")) self.undoButton.setText(translate("draft", "&Undo (CTRL+Z)")) self.undoButton.setToolTip(translate("draft", "Undo the last segment")) self.closeButton.setText(translate("draft", "Close")+" ("+inCommandShortcuts["Close"][0]+")") @@ -1982,7 +1982,7 @@ class DraftToolBar: self.addButton.setChecked(False) self.delButton.setChecked(False) - def arc3PtMode(self,bool): + def setArc3PtMode(self,bool): if self.arc3PtButton.isChecked(): self.arc3PtButton.setChecked(True) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index b76f0a8584..3aef2d562c 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -4241,7 +4241,10 @@ class Edit(Modifier): elif arg["Key"] == "f": self.finish() elif arg["Key"] == "c": - self.finish(closed=True) + self.finish(closed=True) + elif arg["Key"] == "i": + if (arg["State"] == "DOWN") and Draft.getType(self.obj) == "Circle": + self.arcInvert() elif arg["Type"] == "SoLocation2Event": #mouse movement detection self.point,ctrlPoint,info = getPoint(self,arg) if self.editing != None: @@ -4387,7 +4390,7 @@ class Edit(Modifier): self.obj.recompute() self.trackers[1].set(self.obj.Shape.Vertexes[0].Point) else:#self.obj is an arc - if self.arc3Pt == False:#edit by center radius FirstAngle LastAngle + if self.arc3Pt == True:#edit by center radius FirstAngle LastAngle deltaX = v[0]-self.obj.Placement.Base[0] deltaY = v[1]-self.obj.Placement.Base[1] dangle = math.degrees(math.atan2(deltaY,deltaX)) @@ -4414,7 +4417,7 @@ class Edit(Modifier): self.trackers[2].set(self.obj.Shape.Vertexes[1].Point) self.trackers[3].set(self.getArcMid()) self.trackers[1].set(self.obj.Shape.Vertexes[0].Point) - elif self.arc3Pt: + elif self.arc3Pt == False: if self.editing == 0:#keep everithing as it is for the moment p1=self.obj.Shape.Vertexes[0].Point p2=self.getArcMid() @@ -4543,7 +4546,16 @@ class Edit(Modifier): msg("wall edit mode: get midpoint") else: msg("Failed to get object midpoint during Editing") - + + def arcInvert(self): + FA=self.obj.FirstAngle + self.obj.FirstAngle=self.obj.LastAngle + self.obj.LastAngle=FA + 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[3].set(self.getArcMid()) + def numericInput(self,v,numy=None,numz=None): '''this function gets called by the toolbar when valid x, y, and z have been entered there''' @@ -4749,6 +4761,7 @@ class Edit(Modifier): objPoints = self.obj.Points[ep] if self.pl: objPoints = self.pl.multVec(objPoints) self.trackers.append(editTracker(objPoints,self.obj.Name,ep,self.obj.ViewObject.LineColor)) + class AddToGroup(): "The AddToGroup FreeCAD command definition"