From c66c841d37db7d49bd8d6b20b20bff09f2368e04 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Sep 2019 04:29:06 +0300 Subject: [PATCH] - made isolation threaded --- FlatCAMApp.py | 2 +- FlatCAMObj.py | 67 ++++++++++++++++++++++++++++++--------------------- README.md | 4 +++ 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 8c5fccdd..b3c2582b 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -3537,7 +3537,7 @@ class App(QtCore.QObject): # Check units and convert if necessary # This condition CAN be true because initialize() can change obj.units if self.options["units"].upper() != obj.units.upper(): - self.inform.emit('[ERROR_NOTCL] %s: %s' % + self.inform.emit('%s: %s' % (_("Converting units to "), self.options["units"])) obj.convert_units(self.options["units"]) t3 = time.time() diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 42f7e1b6..54247b1c 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -846,40 +846,53 @@ class FlatCAMGerber(FlatCAMObj, Gerber): self.app.new_object("geometry", name, geo_init) def on_ext_iso_button_click(self, *args): + obj = self.app.collection.get_active() - if self.ui.follow_cb.get_value() is True: - obj = self.app.collection.get_active() - obj.follow_geo() - # in the end toggle the visibility of the origin object so we can see the generated Geometry - obj.ui.plot_cb.toggle() - else: - self.app.report_usage("gerber_on_iso_button") - self.read_form() - self.isolate(iso_type=0) + def worker_task(obj, app_obj): + with self.app.proc_container.new(_("Isolating...")): + if self.ui.follow_cb.get_value() is True: + obj.follow_geo() + # in the end toggle the visibility of the origin object so we can see the generated Geometry + obj.ui.plot_cb.toggle() + else: + app_obj.report_usage("gerber_on_iso_button") + self.read_form() + self.isolate(iso_type=0) + + self.app.worker_task.emit({'fcn': worker_task, 'params': [obj, self.app]}) def on_int_iso_button_click(self, *args): + obj = self.app.collection.get_active() - if self.ui.follow_cb.get_value() is True: - obj = self.app.collection.get_active() - obj.follow_geo() - # in the end toggle the visibility of the origin object so we can see the generated Geometry - obj.ui.plot_cb.toggle() - else: - self.app.report_usage("gerber_on_iso_button") - self.read_form() - self.isolate(iso_type=1) + def worker_task(obj, app_obj): + with self.app.proc_container.new(_("Isolating...")): + if self.ui.follow_cb.get_value() is True: + obj.follow_geo() + # in the end toggle the visibility of the origin object so we can see the generated Geometry + obj.ui.plot_cb.toggle() + else: + app_obj.report_usage("gerber_on_iso_button") + self.read_form() + self.isolate(iso_type=1) + + self.app.worker_task.emit({'fcn': worker_task, 'params': [obj, self.app]}) def on_iso_button_click(self, *args): - if self.ui.follow_cb.get_value() is True: - obj = self.app.collection.get_active() - obj.follow_geo() - # in the end toggle the visibility of the origin object so we can see the generated Geometry - obj.ui.plot_cb.toggle() - else: - self.app.report_usage("gerber_on_iso_button") - self.read_form() - self.isolate() + obj = self.app.collection.get_active() + + def worker_task(obj, app_obj): + with self.app.proc_container.new(_("Isolating...")): + if self.ui.follow_cb.get_value() is True: + obj.follow_geo() + # in the end toggle the visibility of the origin object so we can see the generated Geometry + obj.ui.plot_cb.toggle() + else: + app_obj.report_usage("gerber_on_iso_button") + self.read_form() + self.isolate() + + self.app.worker_task.emit({'fcn': worker_task, 'params': [obj, self.app]}) def follow_geo(self, outname=None): """ diff --git a/README.md b/README.md index 2a6d9ec8..eca3b61c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing. ================================================= +10.09.2019 + +- made isolation threaded + 9.09.2019 - changed the triangulation type in VisPyVisuals for ShapeCollectionVisual class