From 46ff910e74fa5781f4d48cb491c7e8653e1cef76 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 8 Aug 2017 18:30:26 -0300 Subject: [PATCH] Arch: fixed normal direction bug in structures --- src/Mod/Arch/ArchStructure.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 51b12e5356..1bb9b9b138 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -540,15 +540,20 @@ class _Structure(ArchComponent.Component): baseface = Part.Face(Part.makePolygon([v1,v2,v3,v4,v1])) base,placement = self.rebase(baseface) if base and placement: - if obj.Normal == Vector(0,0,0): - if not normal: - normal = Vector(0,0,1) - else: + if obj.Normal.Length: normal = Vector(obj.Normal) + normal = placement.inverse().Rotation.multVec(normal) + if not normal: + normal = Vector(0,0,1) + if not normal.Length: + normal = Vector(0,0,1) + extrusion = normal if (length > height) and (obj.Role != "Slab"): - extrusion = normal.multiply(length) + if length: + extrusion = normal.multiply(length) else: - extrusion = normal.multiply(height) + if height: + extrusion = normal.multiply(height) return (base,extrusion,placement) return None