Update Edit Tool
Arc 3 points and minor other fixes
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user