diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index aa9487ac7b..fb9f8ea5c0 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -2308,7 +2308,7 @@ class MeasureTool(bpy.types.Operator): self.number_output = "" self.number_is_negative = False self.is_input_on = False - self.input_options = ["X", "Y", "D", "A"] + self.input_options = ["X", "Y", "Z", "D", "A"] self.input_type = "OFF" self.input_value_xy = [None, None] self.input_panel = {"X": "", "Y": "", "Z": "", "D": "", "A": "", "AREA": ""} @@ -2396,7 +2396,7 @@ class MeasureTool(bpy.types.Operator): PolylineDecorator.set_input_panel(self.input_panel, self.input_type) tool.Blender.update_viewport() - if event.value == "RELEASE" and event.type in self.input_options: + if event.value == "RELEASE" and event.type in self.input_options and not event.shift: self.recalculate_inputs(context) self.is_input_on = True self.input_type = event.type @@ -2436,17 +2436,17 @@ class MeasureTool(bpy.types.Operator): PolylineDecorator.set_input_panel(self.input_panel, self.input_type) tool.Blender.update_viewport() - if event.shift and event.type == "X": + if event.shift and event.value == "PRESS" and event.type == "X": tool.Snap.set_use_default_container(False) PolylineDecorator.set_use_default_container(False) tool.Snap.set_snap_plane_method("YZ") - if event.shift and event.type == "Y": + if event.shift and event.value == "PRESS" and event.type == "Y": tool.Snap.set_use_default_container(False) PolylineDecorator.set_use_default_container(False) tool.Snap.set_snap_plane_method("XZ") - if event.shift and event.type == "Z": + if event.shift and event.value == "PRESS" and event.type == "Z": tool.Snap.set_use_default_container(False) PolylineDecorator.set_use_default_container(False) tool.Snap.set_snap_plane_method("XY") diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 4031b9640e..351f8ef9e4 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -384,6 +384,8 @@ class Snap(bonsai.core.tool.Snap): PolylineDecorator.set_plane(plane_origin, plane_normal) intersection = tool.Raycast.ray_cast_to_plane(context, event, plane_origin, plane_normal) + axis_start = None + axis_end = None if cls.snap_plane_method in {"XY", "XZ", "YZ"}: # Locks snap into an angle axis if event.shift: @@ -407,7 +409,7 @@ class Snap(bonsai.core.tool.Snap): snap_point = cls.select_snap_point(snap_points, intersection, snap_threshold) if snap_point: - if event.shift: + if event.shift and axis_start: snap_result, snap_type = cls.mix_snap_and_axis(snap_point, axis_start, axis_end, elevation) cls.update_snaping_point(snap_result, snap_type) cls.update_snaping_ref(snap_point[0], snap_point[1])