Update Edit Tool

Arc 3 points and minor other fixes
This commit is contained in:
carlopav
2019-02-13 16:40:26 +01:00
parent e04b4447d7
commit f40f1fde59
2 changed files with 21 additions and 8 deletions

View File

@@ -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)

View File

@@ -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"