From 7e0b57a83a8307a6ef24e792f753eb38287a5559 Mon Sep 17 00:00:00 2001 From: Denvi Date: Fri, 15 Jul 2016 20:41:29 +0500 Subject: [PATCH 1/2] Measure tool fix --- MeasurementTool.py | 23 ++++++++++++----------- camlib.py | 6 +----- svgparse.py | 2 +- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/MeasurementTool.py b/MeasurementTool.py index 12327f3..f884135 100644 --- a/MeasurementTool.py +++ b/MeasurementTool.py @@ -32,41 +32,42 @@ class Measurement(FlatCAMTool): def install(self): FlatCAMTool.install(self) self.app.ui.right_layout.addWidget(self) - # TODO: Translate to vis - # self.app.plotcanvas.mpl_connect('key_press_event', self.on_key_press) + self.app.plotcanvas.vis_connect('key_press', self.on_key_press) def run(self): self.toggle() def on_click(self, event): + pos = self.app.plotcanvas.vispy_canvas.translate_coords(event.pos) if self.point1 is None: - self.point1 = (event.xdata, event.ydata) + self.point1 = pos else: self.point2 = copy(self.point1) - self.point1 = (event.xdata, event.ydata) + self.point1 = pos self.on_move(event) def on_key_press(self, event): - if event.key == 'r': + if event.key == 'R': self.toggle() def toggle(self): if self.isVisible(): self.setVisible(False) - self.app.plotcanvas.mpl_disconnect(self.move_subscription) - self.app.plotcanvas.mpl_disconnect(self.click_subscription) + self.app.plotcanvas.vis_disconnect('mouse_move', self.on_move) + self.app.plotcanvas.vis_disconnect('mouse_release', self.on_click) else: self.setVisible(True) - self.move_subscription = self.app.plotcanvas.mpl_connect('motion_notify_event', self.on_move) - self.click_subscription = self.app.plotcanvas.mpl_connect('button_press_event', self.on_click) + self.app.plotcanvas.vis_connect('mouse_move', self.on_move) + self.app.plotcanvas.vis_connect('mouse_release', self.on_click) def on_move(self, event): if self.point1 is None: self.label.setText("Click on a reference point...") else: try: - dx = event.xdata - self.point1[0] - dy = event.ydata - self.point1[1] + pos = self.app.plotcanvas.vispy_canvas.translate_coords(event.pos) + dx = pos[0] - self.point1[0] + dy = pos[1] - self.point1[1] d = sqrt(dx**2 + dy**2) self.label.setText("D = %.4f D(x) = %.4f D(y) = %.4f" % (d, dx, dy)) except TypeError: diff --git a/camlib.py b/camlib.py index 69e3430..495a239 100644 --- a/camlib.py +++ b/camlib.py @@ -41,13 +41,9 @@ import simplejson as json # TODO: Commented for FlatCAM packaging with cx_freeze import xml.etree.ElementTree as ET -# from svg.path import Path, Line, Arc, CubicBezier, QuadraticBezier, parse_path +from svg.path import Path, Line, Arc, CubicBezier, QuadraticBezier, parse_path import itertools -import xml.etree.ElementTree as ET -# from svg.path import Path, Line, Arc, CubicBezier, QuadraticBezier, parse_path - - from svgparse import * import logging diff --git a/svgparse.py b/svgparse.py index fd88c8e..544f0ba 100644 --- a/svgparse.py +++ b/svgparse.py @@ -22,7 +22,7 @@ import xml.etree.ElementTree as ET import re import itertools -# from svg.path import Path, Line, Arc, CubicBezier, QuadraticBezier, parse_path +from svg.path import Path, Line, Arc, CubicBezier, QuadraticBezier, parse_path from shapely.geometry import LinearRing, LineString, Point from shapely.affinity import translate, rotate, scale, skew, affine_transform import numpy as np From e00694030c93486d71de9a2c19814fec065198ab Mon Sep 17 00:00:00 2001 From: Denvi Date: Fri, 15 Jul 2016 21:19:13 +0500 Subject: [PATCH 2/2] Toolbar 'Clear', 'Replot' buttons changed --- FlatCAMApp.py | 10 +++------- FlatCAMGUI.py | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index a1f2199..3d9f60d 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -508,8 +508,8 @@ class App(QtCore.QObject): self.ui.zoom_fit_btn.triggered.connect(self.on_zoom_fit) self.ui.zoom_in_btn.triggered.connect(lambda: self.plotcanvas.zoom(1.5)) self.ui.zoom_out_btn.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5)) - self.ui.clear_plot_btn.triggered.connect(self.plotcanvas.clear) - self.ui.replot_btn.triggered.connect(self.on_toolbar_replot) + self.ui.clear_plot_btn.triggered.connect(lambda: self.disable_plots(except_current=True)) + self.ui.replot_btn.triggered.connect(self.enable_all_plots) self.ui.newgeo_btn.triggered.connect(lambda: self.new_object('geometry', 'New Geometry', lambda x, y: None)) self.ui.editgeo_btn.triggered.connect(self.edit_geometry) self.ui.updategeo_btn.triggered.connect(self.editor2geometry) @@ -1469,6 +1469,7 @@ class App(QtCore.QObject): self.plotcanvas.vispy_canvas.update() self.on_zoom_fit(None) + # TODO: Rework toolbar 'clear', 'replot' functions def on_toolbar_replot(self): """ Callback for toolbar button. Re-plots all objects. @@ -1644,8 +1645,6 @@ class App(QtCore.QObject): # Remove everything from memory App.log.debug("on_file_new()") - self.plotcanvas.clear() - # tcl needs to be reinitialized, otherwise old shell variables etc remains self.init_tcl() @@ -2279,7 +2278,6 @@ class App(QtCore.QObject): """ self.log.debug("plot_all()") - self.plotcanvas.clear() self.progress.emit(10) def worker_task(app_obj): @@ -4154,8 +4152,6 @@ class App(QtCore.QObject): ) def enable_all_plots(self, *args): - self.plotcanvas.clear() - def worker_task(app_obj): percentage = 0.1 try: diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py index 9f22faa..cc783e9 100644 --- a/FlatCAMGUI.py +++ b/FlatCAMGUI.py @@ -124,8 +124,8 @@ class FlatCAMGUI(QtGui.QMainWindow): self.zoom_fit_btn = self.toolbar.addAction(QtGui.QIcon('share/zoom_fit32.png'), "&Zoom Fit") self.zoom_out_btn = self.toolbar.addAction(QtGui.QIcon('share/zoom_out32.png'), "&Zoom Out") self.zoom_in_btn = self.toolbar.addAction(QtGui.QIcon('share/zoom_in32.png'), "&Zoom In") - self.clear_plot_btn = self.toolbar.addAction(QtGui.QIcon('share/clear_plot32.png'), "&Clear Plot") - self.replot_btn = self.toolbar.addAction(QtGui.QIcon('share/replot32.png'), "&Replot") + self.clear_plot_btn = self.toolbar.addAction(QtGui.QIcon('share/clear_plot32.png'), "&Disable others") + self.replot_btn = self.toolbar.addAction(QtGui.QIcon('share/replot32.png'), "&Enable all") self.newgeo_btn = self.toolbar.addAction(QtGui.QIcon('share/new_geo32.png'), "New Blank Geometry") self.editgeo_btn = self.toolbar.addAction(QtGui.QIcon('share/edit32.png'), "Edit Geometry") self.updategeo_btn = self.toolbar.addAction(QtGui.QIcon('share/edit_ok32.png'), "Update Geometry")