Draft: Fixed offset of arcs - fixes #1993
This commit is contained in:
parent
c0ee5fbae3
commit
c67b2bed45
|
@ -2573,16 +2573,28 @@ class Offset(Modifier):
|
||||||
def numericRadius(self,rad):
|
def numericRadius(self,rad):
|
||||||
'''this function gets called by the toolbar when
|
'''this function gets called by the toolbar when
|
||||||
valid radius have been entered there'''
|
valid radius have been entered there'''
|
||||||
|
#print "dvec:",self.dvec
|
||||||
|
#print "rad:",rad
|
||||||
if self.dvec:
|
if self.dvec:
|
||||||
self.dvec.normalize()
|
if isinstance(self.dvec,float):
|
||||||
self.dvec.multiply(rad)
|
if self.mode == "Circle":
|
||||||
|
r1 = self.shape.Edges[0].Curve.Radius
|
||||||
|
r2 = self.ghost.getRadius()
|
||||||
|
if r2 >= r1:
|
||||||
|
rad = r1 + rad
|
||||||
|
else:
|
||||||
|
rad = r1 - rad
|
||||||
|
d = str(rad)
|
||||||
|
else:
|
||||||
|
print "Draft.Offset error: Unhandled case"
|
||||||
|
else:
|
||||||
|
self.dvec.normalize()
|
||||||
|
self.dvec.multiply(rad)
|
||||||
|
d = DraftVecUtils.toString(self.dvec)
|
||||||
copymode = False
|
copymode = False
|
||||||
occmode = self.ui.occOffset.isChecked()
|
occmode = self.ui.occOffset.isChecked()
|
||||||
if self.ui.isCopy.isChecked(): copymode = True
|
if self.ui.isCopy.isChecked():
|
||||||
if isinstance(self.dvec,float):
|
copymode = True
|
||||||
d = str(self.dvec)
|
|
||||||
else:
|
|
||||||
d = DraftVecUtils.toString(self.dvec)
|
|
||||||
FreeCADGui.addModule("Draft")
|
FreeCADGui.addModule("Draft")
|
||||||
self.commit(translate("draft","Offset"),
|
self.commit(translate("draft","Offset"),
|
||||||
['Draft.offset(FreeCAD.ActiveDocument.'+self.sel.Name+','+d+',copy='+str(copymode)+',occ='+str(occmode)+')',
|
['Draft.offset(FreeCAD.ActiveDocument.'+self.sel.Name+','+d+',copy='+str(copymode)+',occ='+str(occmode)+')',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user