From d72f90d972932e1d79a9bc992c7d13c0becd5f14 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Sat, 26 Jun 2021 09:42:56 +0200 Subject: [PATCH] Draft: Fix misplaced Draft_Edit nodes for BezCurve 2nd version The poles in the resetTrackersBezier function are in the CS of the geometric parent of the curve. Before using `p = obj.getGlobalPlacement().multVec(p)` the nodes have to be translated to the CS of the curve. Otherwise the effects of the curve's Placement would be added twice. See discussion: https://github.com/FreeCAD/FreeCAD/pull/4889 the global coordinate system. They should therefore not be translated from the LCS to the GCS. --- src/Mod/Draft/draftguitools/gui_edit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Mod/Draft/draftguitools/gui_edit.py b/src/Mod/Draft/draftguitools/gui_edit.py index d334fac5e8..752c0115da 100644 --- a/src/Mod/Draft/draftguitools/gui_edit.py +++ b/src/Mod/Draft/draftguitools/gui_edit.py @@ -595,6 +595,7 @@ class Edit(gui_base_original.Modifier): pointswithmarkers.append((poles[-1],knotmarkers[knotmarkeri])) for index, pwm in enumerate(pointswithmarkers): p, marker = pwm + p = obj.Placement.inverse().multVec(p) p = obj.getGlobalPlacement().multVec(p) self.trackers[obj.Name].append(trackers.editTracker(p, obj.Name, index, obj.ViewObject.LineColor, marker=marker))