diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 780c70ca3..8bc238b09 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -100,7 +100,7 @@ class _CommandWall: self.tracker = DraftTrackers.boxTracker() FreeCADGui.Snapper.getPoint(callback=self.getPoint) - def getPoint(self,point,obj): + def getPoint(self,point=None,obj=None): "this function is called by the snapper when it has a 3D point" if obj: if Draft.getType(obj) == "Wall": diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 81f654afd..706d4d54a 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -852,24 +852,24 @@ class DraftToolBar: except ValueError: pass else: - if self.isRelative.isVisible() and self.isRelative.isChecked(): - if self.sourceCmd.node: - if self.sourceCmd.featureName == "Rectangle": - last = self.sourceCmd.node[0] - else: - last = self.sourceCmd.node[-1] - numx = last.x + numx - numy = last.y + numy - numz = last.z + numz - if FreeCAD.DraftWorkingPlane: - v = FreeCAD.Vector(numx,numy,numz) - v = FreeCAD.DraftWorkingPlane.getGlobalCoords(v) - numx = v.x - numy = v.y - numz = v.z if self.pointcallback: - self.pointcallback(FreeCAD.Vector(numx,numy,numz),self.isRelative.isChecked()) + self.pointcallback(FreeCAD.Vector(numx,numy,numz),(self.isRelative.isVisible() and self.isRelative.isChecked())) else: + if self.isRelative.isVisible() and self.isRelative.isChecked(): + if self.sourceCmd.node: + if self.sourceCmd.featureName == "Rectangle": + last = self.sourceCmd.node[0] + else: + last = self.sourceCmd.node[-1] + numx = last.x + numx + numy = last.y + numy + numz = last.z + numz + if FreeCAD.DraftWorkingPlane: + v = FreeCAD.Vector(numx,numy,numz) + v = FreeCAD.DraftWorkingPlane.getGlobalCoords(v) + numx = v.x + numy = v.y + numz = v.z self.sourceCmd.numericInput(numx,numy,numz) def finish(self): diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index 6535312a5..1022043b0 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -678,7 +678,8 @@ class Snapper: def getcoords(point,relative=False): self.pt = point if relative and last: - self.pt = last.add(point) + v = FreeCAD.DraftWorkingPlane.getGlobalCoords(point) + self.pt = last.add(v) accept() def click(event_cb):