From 42ab4750e72ebe8cc50c63da6f59696c6f2932ff Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Fri, 24 Feb 2023 11:01:45 +0100 Subject: [PATCH] [Arch] Arch_Stairs TreadDepth was based on unprojected edge (#8613) --- src/Mod/Arch/ArchStairs.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/Mod/Arch/ArchStairs.py b/src/Mod/Arch/ArchStairs.py index 5d2aadc4e0..563c8ccc1c 100644 --- a/src/Mod/Arch/ArchStairs.py +++ b/src/Mod/Arch/ArchStairs.py @@ -1331,29 +1331,25 @@ class _Stairs(ArchComponent.Component): if obj.NumberOfSteps < 2: print("Fewer than 2 steps, unable to create/update stairs") return - v = DraftGeomUtils.vec(edge) + v = DraftGeomUtils.vec(edge) + v_proj = Vector(v.x, v.y, 0) # Projected on XY plane. landing = 0 if obj.TreadDepthEnforce == 0: if obj.Landings == "At center" and obj.NumberOfSteps > 3: if obj.LandingDepth: - reslength = edge.Length - obj.LandingDepth.Value + reslength = v_proj.Length - obj.LandingDepth.Value else: - reslength = edge.Length - obj.Width.Value - + reslength = v_proj.Length - obj.Width.Value treadDepth = reslength/(obj.NumberOfSteps-2) - obj.TreadDepth = treadDepth - vLength = DraftVecUtils.scaleTo(v,treadDepth) else: - reslength = edge.Length + reslength = v_proj.Length treadDepth = reslength/(obj.NumberOfSteps-1) - obj.TreadDepth = treadDepth - vLength = DraftVecUtils.scaleTo(v,treadDepth) + obj.TreadDepth = treadDepth + vLength = DraftVecUtils.scaleTo(v_proj,treadDepth) else: obj.TreadDepth = obj.TreadDepthEnforce - - vLength = DraftVecUtils.scaleTo(v,float(obj.TreadDepthEnforce)) - vLength = Vector(vLength.x,vLength.y,0) + vLength = DraftVecUtils.scaleTo(v_proj,obj.TreadDepthEnforce.Value) vWidth = DraftVecUtils.scaleTo(vLength.cross(Vector(0,0,1)),obj.Width.Value) p1 = edge.Vertexes[0].Point