From ef2d4f2989ceb442eb8fd0b9d5466f5e58684b33 Mon Sep 17 00:00:00 2001 From: marioalexis Date: Sun, 1 Nov 2020 03:18:32 -0300 Subject: [PATCH] Draft: Fixes in gui_offset --- src/Mod/Draft/draftguitools/gui_offset.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Mod/Draft/draftguitools/gui_offset.py b/src/Mod/Draft/draftguitools/gui_offset.py index be4b1c1a5f..58960b9a9f 100644 --- a/src/Mod/Draft/draftguitools/gui_offset.py +++ b/src/Mod/Draft/draftguitools/gui_offset.py @@ -181,7 +181,7 @@ class Offset(gui_base_original.Modifier): self.point) v2 = DraftGeomUtils.getTangent(self.shape.Edges[dist[1]], self.point) - a = -DraftVecUtils.angle(v1, v2) + a = -DraftVecUtils.angle(v1, v2, plane.axis) self.dvec = DraftVecUtils.rotate(d, a, plane.axis) occmode = self.ui.occOffset.isChecked() utils.param.SetBool("Offset_OCC", occmode) @@ -196,7 +196,7 @@ class Offset(gui_base_original.Modifier): self.npts = [] for p in self.sel.Points: currtan = DraftGeomUtils.getTangent(e, p) - a = -DraftVecUtils.angle(currtan, basetan) + a = -DraftVecUtils.angle(currtan, basetan, plane.axis) self.dvec = DraftVecUtils.rotate(d, a, plane.axis) self.npts.append(p.add(self.dvec)) self.ghost.update(self.npts) @@ -294,6 +294,13 @@ class Offset(gui_base_original.Modifier): delta = str(rad) else: _err("Draft.Offset error: Unhandled case") + # to offset bspline + elif self.mode == "BSpline": + new_points = [] + for old_point, new_point in zip(self.sel.Points, self.npts): + diff_direction = new_point.sub(old_point).normalize() + new_points.append(old_point.add(diff_direction*rad)) + delta = DraftVecUtils.toString(new_points) else: self.dvec.normalize() self.dvec.multiply(rad) @@ -301,6 +308,7 @@ class Offset(gui_base_original.Modifier): copymode = False occmode = self.ui.occOffset.isChecked() utils.param.SetBool("Offset_OCC", occmode) + if self.ui.isCopy.isChecked(): copymode = True Gui.addModule("Draft")