Marius Stanciu 6 лет назад
Родитель
Сommit
c66c841d37
3 измененных файлов с 45 добавлено и 28 удалено
  1. 1 1
      FlatCAMApp.py
  2. 40 27
      FlatCAMObj.py
  3. 4 0
      README.md

+ 1 - 1
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()

+ 40 - 27
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()
+
+        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)
 
-        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)
+        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()
+
+        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)
 
-        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)
+        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):
         """

+ 4 - 0
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