From 0d42a2ac407079909562b7aa73f8a98e70e2e86f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 13 Oct 2021 02:18:17 +0300 Subject: [PATCH] - in Distance Plugin - Distance value is now updated real time regardless of the Multi Point setting --- CHANGELOG.md | 1 + appPlugins/ToolDistance.py | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab8d4664..40ea71b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ CHANGELOG for FlatCAM beta - in Distance Plugin - modified the UI - in Distance Plugin - implemented a new feature: multi segment distance measurement - in Distance Plugin - the Dx, Dy, Angle and Distance values are updated real time (for non multi segment measurement) +- in Distance Plugin - Distance value is now updated real time regardless of the Multi Point setting 12.10.2021 diff --git a/appPlugins/ToolDistance.py b/appPlugins/ToolDistance.py index b6c4b38c..f26979bf 100644 --- a/appPlugins/ToolDistance.py +++ b/appPlugins/ToolDistance.py @@ -153,15 +153,6 @@ class Distance(AppTool): self.app.command_active = "Distance" - # initial view of the layout - self.ui.start_entry.set_value('(0, 0)') - self.ui.stop_entry.set_value('(0, 0)') - - self.ui.distance_x_entry.set_value('0.0') - self.ui.distance_y_entry.set_value('0.0') - self.ui.angle_entry.set_value('0.0') - self.ui.total_distance_entry.set_value('0.0') - self.ui.snap_center_cb.set_value(self.app.defaults['tools_dist_snap_center']) # snap center works only for Gerber and Execellon Editor's @@ -185,8 +176,19 @@ class Distance(AppTool): if self.app.ui.grid_snap_btn.isChecked(): self.grid_status_memory = True + + # initial view of the layout + self.initial_view() self.app.call_source = 'measurement' + def initial_view(self): + self.display_start((0.0, 0.0)) + self.display_end((0.0, 0.0)) + self.ui.angle_entry.set_value('%.*f' % (self.decimals, 0.0)) + self.ui.distance_x_entry.set_value('%.*f' % (self.decimals, 0.0)) + self.ui.distance_y_entry.set_value('%.*f' % (self.decimals, 0.0)) + self.ui.total_distance_entry.set_value('%.*f' % (self.decimals, 0.0)) + def on_snap_toggled(self, state): self.app.defaults['tools_dist_snap_center'] = state if state: @@ -575,6 +577,7 @@ class Distance(AppTool): self.delete_utility_shape(self.last_shape) if self.points: self.add_utility_shape(start_pos=self.points[-1], end_pos=pos) + self.display_distance(self.total_distance + self.update_distance(pos, prev_pos=self.points[-1])) except Exception as e: self.app.log.error("Distance.on_mouse_move() update --> %s" % str(e)) self.app.ui.position_label.setText("") @@ -594,6 +597,10 @@ class Distance(AppTool): if val: self.ui.angle_entry.set_value(str(self.app.dec_format(val, self.decimals))) + def display_start(self, val): + if val: + self.ui.start_entry.set_value(str(val)) + def update_end_point(self, pos): # update the end point value end_val = ( @@ -613,9 +620,9 @@ class Distance(AppTool): def display_deltas(self, dx, dy): if dx: - self.ui.distance_x_entry.set_value('%.*f' % (self.decimals, abs(dx))) + self.ui.distance_x_entry.set_value(str(self.app.dec_format(abs(dx), self.decimals))) if dy: - self.ui.distance_y_entry.set_value('%.*f' % (self.decimals, abs(dy))) + self.ui.distance_y_entry.set_value(str(self.app.dec_format(abs(dx), self.decimals))) def update_distance(self, pos, prev_pos=None): if prev_pos is None: