From fb2989c17f3133097ffe2c3d70bb42f812bb4d87 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 26 Oct 2022 18:11:54 +1100 Subject: [PATCH] Fix #2528. Setting x angle on slabs now only affects the X euler angle --- src/blenderbim/blenderbim/bim/module/model/slab.py | 3 +-- src/blenderbim/blenderbim/bim/module/model/wall.py | 8 ++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py index f805a319cc..a9fd989b82 100644 --- a/src/blenderbim/blenderbim/bim/module/model/slab.py +++ b/src/blenderbim/blenderbim/bim/module/model/slab.py @@ -176,8 +176,7 @@ class DumbSlabGenerator: obj.matrix_world = matrix_world bpy.context.view_layer.update() self.collection.objects.link(obj) - rotation = mathutils.Matrix.Rotation(self.x_angle, 4, 'X') - obj.matrix_world = rotation + obj.matrix_world = Matrix.Rotation(self.x_angle, 4, 'X') element = blenderbim.core.root.assign_class( tool.Ifc, diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py index 6b9ff130bd..8f3adff8e7 100644 --- a/src/blenderbim/blenderbim/bim/module/model/wall.py +++ b/src/blenderbim/blenderbim/bim/module/model/wall.py @@ -294,8 +294,12 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator): is_global=True, should_sync_changes_first=False, ) - rotation = mathutils.Matrix.Rotation(x_angle, 4, "X") - obj.matrix_world = rotation + + euler = obj.matrix_world.to_euler() + euler.x = x_angle + new_matrix = euler.to_matrix().to_4x4() + new_matrix.col[3] = obj.matrix_world.col[3] + obj.matrix_world = new_matrix if wall_objs: DumbWallRecalculator().recalculate(wall_objs) return {"FINISHED"}