From 256c4cd086dd61a47400d18430759c0d03d8b70f Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Wed, 22 Jun 2022 12:11:47 +0200 Subject: [PATCH] Draft: Fix Placement in make_sketch --- src/Mod/Draft/draftmake/make_sketch.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Mod/Draft/draftmake/make_sketch.py b/src/Mod/Draft/draftmake/make_sketch.py index 8bc2aa8507..eded504ea9 100644 --- a/src/Mod/Draft/draftmake/make_sketch.py +++ b/src/Mod/Draft/draftmake/make_sketch.py @@ -185,10 +185,16 @@ def make_sketch(objects_list, autoconstraints=False, addTo=None, return(edge) - axis = App.Vector(0,0,1).cross(normal) - angle = DraftVecUtils.angle(normal, App.Vector(0,0,1))*App.Units.Radian + axis = App.Vector(0, 0, 1).cross(normal) + angle = DraftVecUtils.angle(normal, App.Vector(0, 0, 1)) * App.Units.Radian rotation = App.Rotation(axis, angle) + point = shapes_list[0].Vertexes[0].Point + base = App.Vector(normal) + base.Length = point.dot(base.normalize()) # See https://forum.freecadweb.org/viewtopic.php?f=22&t=69304#p601149 + + nobj.Placement = App.Placement(base, rotation) + for obj in objects_list: ok = False tp = utils.get_type(obj) @@ -374,7 +380,6 @@ def make_sketch(objects_list, autoconstraints=False, addTo=None, "Failed to delete object {}: {}".format(obj.Label,ex))+"\n") - nobj.Placement.Rotation = rotation nobj.addConstraint(constraints) return nobj