Fixed #0000681 - Bugs in Draft BSplines
This commit is contained in:
parent
2ae1a1a72c
commit
7e560942c9
|
@ -1774,6 +1774,7 @@ class _ViewProviderDimension:
|
|||
obj.Proxy = self
|
||||
obj.FontSize=getParam("textheight")
|
||||
obj.FontName=getParam("textfont")
|
||||
obj.DisplayModes = ["2D","3D"]
|
||||
obj.ExtLines=0.3
|
||||
obj.Override = ''
|
||||
|
||||
|
@ -1827,6 +1828,7 @@ class _ViewProviderDimension:
|
|||
return p1,p2,p3,p4,tbase,norm,rot
|
||||
|
||||
def attach(self, obj):
|
||||
obj.DisplayMode = ["2D","3D"]
|
||||
self.Object = obj.Object
|
||||
p1,p2,p3,p4,tbase,norm,rot = self.calcGeom(obj.Object)
|
||||
self.color = coin.SoBaseColor()
|
||||
|
@ -1922,29 +1924,30 @@ class _ViewProviderDimension:
|
|||
text = text.replace("dim",dtext)
|
||||
else:
|
||||
text = dtext
|
||||
self.text.string = self.text3d.string = text
|
||||
self.textpos.rotation = coin.SbRotation(rot[0],rot[1],rot[2],rot[3])
|
||||
self.textpos.translation.setValue([tbase.x,tbase.y,tbase.z])
|
||||
if obj.ViewObject.DisplayMode == "2D":
|
||||
self.coords.point.setValues([[p1.x,p1.y,p1.z],
|
||||
[p2.x,p2.y,p2.z],
|
||||
[p3.x,p3.y,p3.z],
|
||||
[p4.x,p4.y,p4.z]])
|
||||
self.line.numVertices.setValues([4])
|
||||
else:
|
||||
ts = (len(text)*obj.ViewObject.FontSize)/4
|
||||
rm = ((p3.sub(p2)).Length/2)-ts
|
||||
p2a = p2.add(fcvec.scaleTo(p3.sub(p2),rm))
|
||||
p2b = p3.add(fcvec.scaleTo(p2.sub(p3),rm))
|
||||
self.coords.point.setValues([[p1.x,p1.y,p1.z],
|
||||
[p2.x,p2.y,p2.z],
|
||||
[p2a.x,p2a.y,p2a.z],
|
||||
[p2b.x,p2b.y,p2b.z],
|
||||
[p3.x,p3.y,p3.z],
|
||||
[p4.x,p4.y,p4.z]])
|
||||
self.line.numVertices.setValues([3,3])
|
||||
self.coord1.point.setValue((p2.x,p2.y,p2.z))
|
||||
self.coord2.point.setValue((p3.x,p3.y,p3.z))
|
||||
if hasattr(self,"text"):
|
||||
self.text.string = self.text3d.string = text
|
||||
self.textpos.rotation = coin.SbRotation(rot[0],rot[1],rot[2],rot[3])
|
||||
self.textpos.translation.setValue([tbase.x,tbase.y,tbase.z])
|
||||
if obj.ViewObject.DisplayMode == "2D":
|
||||
self.coords.point.setValues([[p1.x,p1.y,p1.z],
|
||||
[p2.x,p2.y,p2.z],
|
||||
[p3.x,p3.y,p3.z],
|
||||
[p4.x,p4.y,p4.z]])
|
||||
self.line.numVertices.setValues([4])
|
||||
else:
|
||||
ts = (len(text)*obj.ViewObject.FontSize)/4
|
||||
rm = ((p3.sub(p2)).Length/2)-ts
|
||||
p2a = p2.add(fcvec.scaleTo(p3.sub(p2),rm))
|
||||
p2b = p3.add(fcvec.scaleTo(p2.sub(p3),rm))
|
||||
self.coords.point.setValues([[p1.x,p1.y,p1.z],
|
||||
[p2.x,p2.y,p2.z],
|
||||
[p2a.x,p2a.y,p2a.z],
|
||||
[p2b.x,p2b.y,p2b.z],
|
||||
[p3.x,p3.y,p3.z],
|
||||
[p4.x,p4.y,p4.z]])
|
||||
self.line.numVertices.setValues([3,3])
|
||||
self.coord1.point.setValue((p2.x,p2.y,p2.z))
|
||||
self.coord2.point.setValue((p3.x,p3.y,p3.z))
|
||||
|
||||
def onChanged(self, vp, prop):
|
||||
if prop == "FontSize":
|
||||
|
@ -1961,9 +1964,7 @@ class _ViewProviderDimension:
|
|||
self.updateData(vp.Object, None)
|
||||
|
||||
def getDisplayModes(self,obj):
|
||||
modes=[]
|
||||
modes.extend(["2D","3D"])
|
||||
return modes
|
||||
return ["2D","3D"]
|
||||
|
||||
def getDefaultDisplayMode(self):
|
||||
return "2D"
|
||||
|
@ -2279,13 +2280,14 @@ class _Rectangle:
|
|||
|
||||
class _ViewProviderRectangle(_ViewProviderDraft):
|
||||
"A View Provider for the Rectangle object"
|
||||
def __init__(self, obj):
|
||||
_ViewProviderDraft.__init__(self,obj)
|
||||
def __init__(self, vobj):
|
||||
_ViewProviderDraft.__init__(self,vobj)
|
||||
obj.addProperty("App::PropertyFile","TextureImage",
|
||||
"Base","Uses an image as a texture map")
|
||||
|
||||
def attach(self,obj):
|
||||
def attach(self,vobj):
|
||||
self.texture = None
|
||||
self.Object = vobj.Object
|
||||
|
||||
def onChanged(self, vp, prop):
|
||||
if prop == "TextureImage":
|
||||
|
@ -2613,7 +2615,8 @@ class _ViewProviderBSpline(_ViewProviderDraft):
|
|||
if prop == "Points":
|
||||
if obj.Points:
|
||||
p = obj.Points[-1]
|
||||
self.coords.point.setValue((p.x,p.y,p.z))
|
||||
if hasattr(self,"coords"):
|
||||
self.coords.point.setValue((p.x,p.y,p.z))
|
||||
return
|
||||
|
||||
def onChanged(self, vp, prop):
|
||||
|
|
|
@ -309,7 +309,7 @@ class DraftToolBar:
|
|||
self.radiusValue.setText("0.00")
|
||||
self.isRelative = self._checkbox("isRelative",self.layout,checked=True)
|
||||
self.hasFill = self._checkbox("hasFill",self.layout,checked=self.fillmode)
|
||||
self.continueCmd = self._checkbox("continueCmd",self.layout,checked=False)
|
||||
self.continueCmd = self._checkbox("continueCmd",self.layout,checked=self.continueMode)
|
||||
self.occOffset = self._checkbox("occOffset",self.layout,checked=False)
|
||||
self.undoButton = self._pushbutton("undoButton", self.layout, icon='Draft_Rotate')
|
||||
self.finishButton = self._pushbutton("finishButton", self.layout, icon='Draft_Finish')
|
||||
|
@ -341,7 +341,7 @@ class DraftToolBar:
|
|||
QtCore.QObject.connect(self.radiusValue,QtCore.SIGNAL("returnPressed()"),self.validatePoint)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("textChanged(QString)"),self.storeCurrentText)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("returnPressed()"),self.sendText)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("escaped()"),self.finish)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("escaped()"),self.escape)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("down()"),self.sendText)
|
||||
QtCore.QObject.connect(self.textValue,QtCore.SIGNAL("up()"),self.lineUp)
|
||||
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("returnPressed()"),self.xValue.setFocus)
|
||||
|
@ -361,13 +361,13 @@ class DraftToolBar:
|
|||
QtCore.QObject.connect(self.hasFill,QtCore.SIGNAL("stateChanged(int)"),self.setFill)
|
||||
QtCore.QObject.connect(self.currentViewButton,QtCore.SIGNAL("clicked()"),self.selectCurrentView)
|
||||
QtCore.QObject.connect(self.resetPlaneButton,QtCore.SIGNAL("clicked()"),self.selectResetPlane)
|
||||
QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("escaped()"),self.finish)
|
||||
QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("escaped()"),self.escape)
|
||||
QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("undo()"),self.undoSegment)
|
||||
QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("escaped()"),self.finish)
|
||||
QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("escaped()"),self.escape)
|
||||
QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("undo()"),self.undoSegment)
|
||||
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("escaped()"),self.finish)
|
||||
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("escaped()"),self.escape)
|
||||
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("undo()"),self.undoSegment)
|
||||
QtCore.QObject.connect(self.radiusValue,QtCore.SIGNAL("escaped()"),self.finish)
|
||||
QtCore.QObject.connect(self.radiusValue,QtCore.SIGNAL("escaped()"),self.escape)
|
||||
QtCore.QObject.connect(self.baseWidget,QtCore.SIGNAL("resized()"),self.relocate)
|
||||
QtCore.QObject.connect(self.baseWidget,QtCore.SIGNAL("retranslate()"),self.retranslateUi)
|
||||
|
||||
|
@ -860,6 +860,11 @@ class DraftToolBar:
|
|||
self.cancel()
|
||||
self.cancel = None
|
||||
|
||||
def escape(self):
|
||||
"escapes the current command"
|
||||
self.continueMode = False
|
||||
self.finish()
|
||||
|
||||
def closeLine(self):
|
||||
"close button action"
|
||||
self.sourceCmd.finish(True)
|
||||
|
|
|
@ -422,7 +422,7 @@ class Line(Creator):
|
|||
self.linetrack.finalize()
|
||||
self.constraintrack.finalize()
|
||||
Creator.finish(self)
|
||||
if cont and self.ui:
|
||||
if self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
@ -618,7 +618,7 @@ class BSpline(Line):
|
|||
self.bsplinetrack.finalize()
|
||||
self.constraintrack.finalize()
|
||||
Creator.finish(self)
|
||||
if cont and self.ui:
|
||||
if self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
@ -706,7 +706,7 @@ class Rectangle(Creator):
|
|||
if self.ui:
|
||||
self.rect.off()
|
||||
self.rect.finalize()
|
||||
if cont and self.ui:
|
||||
if self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
@ -807,7 +807,7 @@ class Arc(Creator):
|
|||
self.constraintrack.finalize()
|
||||
self.arctrack.finalize()
|
||||
self.doc.recompute()
|
||||
if cont and self.ui:
|
||||
if self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
@ -1121,7 +1121,6 @@ class Polygon(Creator):
|
|||
self.constraintrack.finalize()
|
||||
self.arctrack.finalize()
|
||||
self.doc.recompute()
|
||||
if cont and self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
@ -1301,7 +1300,6 @@ class Text(Creator):
|
|||
Creator.finish(self)
|
||||
if self.ui:
|
||||
del self.dialog
|
||||
if cont and self.ui:
|
||||
if self.ui.continueMode:
|
||||
self.Activated()
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user