From c67b2bed45ac8b7bf6f7eda3c22541a26fce571a Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 8 Dec 2015 12:01:28 -0200 Subject: [PATCH] Draft: Fixed offset of arcs - fixes #1993 --- src/Mod/Draft/DraftTools.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index f915486cf047..47eea7e51187 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -2573,16 +2573,28 @@ def finish(self,closed=False): def numericRadius(self,rad): '''this function gets called by the toolbar when valid radius have been entered there''' + #print "dvec:",self.dvec + #print "rad:",rad if self.dvec: - self.dvec.normalize() - self.dvec.multiply(rad) - copymode = False - occmode = self.ui.occOffset.isChecked() - if self.ui.isCopy.isChecked(): copymode = True if isinstance(self.dvec,float): - d = str(self.dvec) + 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 + occmode = self.ui.occOffset.isChecked() + if self.ui.isCopy.isChecked(): + copymode = True FreeCADGui.addModule("Draft") self.commit(translate("draft","Offset"), ['Draft.offset(FreeCAD.ActiveDocument.'+self.sel.Name+','+d+',copy='+str(copymode)+',occ='+str(occmode)+')',