From f62f33590610fcdf1e8e0891b30295fbb6b34aeb Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Mon, 10 Oct 2022 21:07:43 +0200 Subject: [PATCH] Draft: Fix alignment of angular dimension arrows in svg.py --- src/Mod/Draft/draftfunctions/svg.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Mod/Draft/draftfunctions/svg.py b/src/Mod/Draft/draftfunctions/svg.py index dd5238e1fa..0accf643f6 100644 --- a/src/Mod/Draft/draftfunctions/svg.py +++ b/src/Mod/Draft/draftfunctions/svg.py @@ -544,14 +544,18 @@ def get_svg(obj, p2 = get_proj(prx.p2, plane) p3 = get_proj(prx.p3, plane) arrowsize = obj.ViewObject.ArrowSize.Value/pointratio - arrowlength = 4*obj.ViewObject.ArrowSize.Value + halfarrowlength = 2 * arrowsize + arrowangle = 2 * math.asin(halfarrowlength / prx.circle.Curve.Radius) + if hasattr(obj.ViewObject, "FlipArrows") \ + and obj.ViewObject.FlipArrows: + arrowangle = -arrowangle _v1a = prx.circle.valueAt(prx.circle.FirstParameter - + arrowlength) + + arrowangle) _v1b = prx.circle.valueAt(prx.circle.FirstParameter) _v2a = prx.circle.valueAt(prx.circle.LastParameter - - arrowlength) + - arrowangle) _v2b = prx.circle.valueAt(prx.circle.LastParameter) u1 = get_proj(_v1a - _v1b, plane) @@ -559,11 +563,6 @@ def get_svg(obj, angle1 = -DraftVecUtils.angle(u1) angle2 = -DraftVecUtils.angle(u2) - if hasattr(obj.ViewObject, "FlipArrows"): - if obj.ViewObject.FlipArrows: - angle1 = angle1 + math.pi - angle2 = angle2 + math.pi - svg += get_arrow(obj, obj.ViewObject.ArrowType, p2, arrowsize, stroke, linewidth, @@ -580,7 +579,7 @@ def get_svg(obj, t = prx.circle.tangentAt(prx.circle.FirstParameter + _diff/2.0) t = get_proj(t, plane) - tangle = DraftVecUtils.angle(t) + tangle = -DraftVecUtils.angle(t) if (tangle <= -math.pi/2) or (tangle > math.pi/2): tangle = tangle + math.pi