From f89dee7668a8ac2349aa6e023f3fb3c5037c678d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Perdig=C3=A3o?= Date: Sat, 24 Aug 2024 15:02:22 -0300 Subject: [PATCH] Fixed angle input for imperial units in polyline wall and measure tool. --- src/bonsai/bonsai/bim/module/model/wall.py | 2 +- src/bonsai/bonsai/bim/module/project/operator.py | 2 +- src/bonsai/bonsai/tool/snap.py | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index a371492b33..7af2637404 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -327,7 +327,7 @@ class DrawPolylineWall(bpy.types.Operator): def recalculate_inputs(self, context): if self.number_input: - is_valid, self.number_output = tool.Snap.validate_input(self.number_output) + is_valid, self.number_output = tool.Snap.validate_input(self.number_output, self.input_type) self.input_panel[self.input_type] = self.number_output if not is_valid: self.report({"WARNING"}, "The number typed is not valid.") diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index 80febfd08d..9bf6fb0376 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -2336,7 +2336,7 @@ class MeasureTool(bpy.types.Operator): def recalculate_inputs(self, context): if self.number_input: - is_valid, self.number_output = tool.Snap.validate_input(self.number_output) + is_valid, self.number_output = tool.Snap.validate_input(self.number_output, self.input_type) self.input_panel[self.input_type] = self.number_output if not is_valid: self.report({"WARNING"}, "The number typed is not valid.") diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 0e950f1625..473faf3ca8 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -454,7 +454,7 @@ class Snap(bonsai.core.tool.Snap): cls.update_snaping_point(intersection, "Plane") @classmethod - def validate_input(cls, input_number): + def validate_input(cls, input_number, input_type): grammar_imperial = """ start: FORMULA? dim expr? @@ -565,6 +565,10 @@ class Snap(bonsai.core.tool.Snap): parser = Lark(grammar_metric) factor = 1 + if input_type == 'A': + parser = Lark(grammar_metric) + factor = 1 + parse_tree = parser.parse(input_number) transformer = InputTransform()