Draft: Objects drawn on an existing face will no longer take it as support unless the face was already selected

This commit is contained in:
Yorik van Havre 2014-08-17 18:09:44 -03:00
parent 75fa3d4067
commit 14292c11cd

View File

@ -173,10 +173,8 @@ def getSupport(args=None):
self.display(plane.axis) self.display(plane.axis)
except: except:
pass pass
if obj.isDerivedFrom("Part::Part2DObject"): # don't set the object's support if we are in the middle of an operation
# make sure we don't set another Draft object as support return None
return None
return obj
def hasMod(args,mod): def hasMod(args,mod):
"checks if args has a specific modifier" "checks if args has a specific modifier"
@ -259,8 +257,7 @@ class DraftTool:
msg("") msg("")
if self.planetrack: if self.planetrack:
self.planetrack.finalize() self.planetrack.finalize()
if self.support: plane.restore()
plane.restore()
if hasattr(FreeCADGui,"Snapper"): if hasattr(FreeCADGui,"Snapper"):
FreeCADGui.Snapper.off() FreeCADGui.Snapper.off()
if self.call: if self.call:
@ -497,7 +494,8 @@ class Line(Creator):
self.finish(False,cont=True) self.finish(False,cont=True)
else: else:
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg)
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
self.pos = arg["Position"] self.pos = arg["Position"]
@ -612,7 +610,8 @@ class BSpline(Line):
self.finish(False,cont=True) self.finish(False,cont=True)
else: else:
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg,noTracker=True)
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
self.pos = arg["Position"] self.pos = arg["Position"]
@ -708,7 +707,8 @@ class BezCurve(Line):
self.finish(False,cont=True) self.finish(False,cont=True)
else: else:
if (not self.node) and (not self.support): #first point if (not self.node) and (not self.support): #first point
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg,noTracker=True)
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
self.pos = arg["Position"] self.pos = arg["Position"]
@ -925,7 +925,8 @@ class Rectangle(Creator):
self.finish() self.finish()
else: else:
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg,mobile=True,noTracker=True)
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
self.appendPoint(self.point) self.appendPoint(self.point)
@ -1091,7 +1092,8 @@ class Arc(Creator):
if self.point: if self.point:
if (self.step == 0): # choose center if (self.step == 0): # choose center
if not self.support: if not self.support:
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg)
if hasMod(arg,MODALT): if hasMod(arg,MODALT):
snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1]))
if snapped: if snapped:
@ -1360,7 +1362,8 @@ class Polygon(Creator):
if self.point: if self.point:
if (self.step == 0): # choose center if (self.step == 0): # choose center
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg)
if hasMod(arg,MODALT): if hasMod(arg,MODALT):
snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1])) snapped=self.view.getObjectInfo((arg["Position"][0],arg["Position"][1]))
if snapped: if snapped:
@ -1532,7 +1535,8 @@ class Ellipse(Creator):
self.finish() self.finish()
else: else:
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
self.point,ctrlPoint,info = getPoint(self,arg,mobile=True,noTracker=True)
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
self.appendPoint(self.point) self.appendPoint(self.point)
@ -1832,7 +1836,7 @@ class Dimension(Creator):
if self.point: if self.point:
self.ui.redraw() self.ui.redraw()
if (not self.node) and (not self.support): if (not self.node) and (not self.support):
self.support = getSupport(arg) getSupport(arg)
if hasMod(arg,MODALT) and (len(self.node)<3): if hasMod(arg,MODALT) and (len(self.node)<3):
#print "snapped: ",self.info #print "snapped: ",self.info
if self.info: if self.info: