+ allow Draft dimensions to be created on top of selected Measurement objects
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5025 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
parent
10c5ddb115
commit
d8b6c9248d
|
@ -2229,7 +2229,15 @@ class Dimension(Creator):
|
|||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_Dimension", "Creates a dimension. CTRL to snap, SHIFT to constrain, ALT to select a segment")}
|
||||
|
||||
def Activated(self):
|
||||
if self.cont: self.finish()
|
||||
if self.cont:
|
||||
self.finish()
|
||||
elif self.hasMeasures:
|
||||
Creator.Activated(self,"Dimension")
|
||||
self.dimtrack = dimTracker()
|
||||
self.arctrack = arcTracker()
|
||||
self.constraintrack = lineTracker(dotted=True)
|
||||
self.createOnMeasures()
|
||||
self.finish()
|
||||
else:
|
||||
Creator.Activated(self,"Dimension")
|
||||
if self.ui:
|
||||
|
@ -2251,6 +2259,16 @@ class Dimension(Creator):
|
|||
msg(translate("draft", "Pick first point:\n"))
|
||||
FreeCADGui.draftToolBar.show()
|
||||
|
||||
def hasMeasures(self):
|
||||
"checks if only measurements objects are selected"
|
||||
sel = FreeCADGui.Selection.getSelection()
|
||||
if not sel:
|
||||
return False
|
||||
for o in sel:
|
||||
if not o.isDerivedFrom("App::MeasureDistance"):
|
||||
return False
|
||||
return True
|
||||
|
||||
def finish(self,closed=False):
|
||||
"terminates the operation"
|
||||
self.cont = None
|
||||
|
@ -2261,6 +2279,15 @@ class Dimension(Creator):
|
|||
self.arctrack.finalize()
|
||||
self.constraintrack.finalize()
|
||||
|
||||
def createOnMeasures(self):
|
||||
for o in FreeCADGui.Selection.getSelection():
|
||||
p1 = o.P1
|
||||
p2 = o.P2
|
||||
pt = o.ViewObject.RootNode.getChildren()[1].getChildren()[0].getChildren()[0].getChildren()[3]
|
||||
p3 = Vector(pt.point.getValues()[2].getValue())
|
||||
self.commit(translate("draft","Create Dimension"),partial(Draft.makeDimension,p1,p2,p3))
|
||||
self.commit(translate("draft","Delete Measurement"),partial(FreeCAD.ActiveDocument.removeObject,o.Name))
|
||||
|
||||
def createObject(self):
|
||||
"creates an object in the current doc"
|
||||
if self.angledata:
|
||||
|
|
Loading…
Reference in New Issue
Block a user