Преглед на файлове

- fixed NCC Tool behavior when selecting tools for Isolation operation

Marius Stanciu преди 5 години
родител
ревизия
808e1c5875
променени са 3 файла, в които са добавени 21 реда и са изтрити 10 реда
  1. 14 6
      AppTools/ToolCutOut.py
  2. 6 4
      AppTools/ToolNCC.py
  3. 1 0
      CHANGELOG.md

+ 14 - 6
AppTools/ToolCutOut.py

@@ -501,6 +501,13 @@ class CutOut(AppTool):
             "tools_paintmethod":        self.app.defaults["tools_paintmethod"],
             "tools_paintmethod":        self.app.defaults["tools_paintmethod"],
             "tools_pathconnect":        self.app.defaults["tools_pathconnect"],
             "tools_pathconnect":        self.app.defaults["tools_pathconnect"],
             "tools_paintcontour":       self.app.defaults["tools_paintcontour"],
             "tools_paintcontour":       self.app.defaults["tools_paintcontour"],
+
+            # Isolation Tool
+            "tools_iso_passes":         self.app.defaults["tools_iso_passes"],
+            "tools_iso_overlap":        self.app.defaults["tools_iso_overlap"],
+            "tools_iso_milling_type":   self.app.defaults["tools_iso_milling_type"],
+            "tools_iso_follow":         self.app.defaults["tools_iso_follow"],
+            "tools_iso_isotype":        self.app.defaults["tools_iso_isotype"],
         })
         })
 
 
     def on_freeform_cutout(self):
     def on_freeform_cutout(self):
@@ -912,7 +919,7 @@ class CutOut(AppTool):
         if 0 in {self.cutting_dia}:
         if 0 in {self.cutting_dia}:
             self.app.inform.emit('[ERROR_NOTCL] %s' %
             self.app.inform.emit('[ERROR_NOTCL] %s' %
                                  _("Tool Diameter is zero value. Change it to a positive real number."))
                                  _("Tool Diameter is zero value. Change it to a positive real number."))
-            return "Tool Diameter is zero value. Change it to a positive real number."
+            return
 
 
         self.cutting_gapsize = float(self.gapsize.get_value())
         self.cutting_gapsize = float(self.gapsize.get_value())
 
 
@@ -923,7 +930,7 @@ class CutOut(AppTool):
         except Exception as e:
         except Exception as e:
             log.debug("CutOut.on_manual_cutout() --> %s" % str(e))
             log.debug("CutOut.on_manual_cutout() --> %s" % str(e))
             self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name))
             self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name))
-            return "Could not retrieve object: %s" % name
+            return
 
 
         if self.app.is_legacy is False:
         if self.app.is_legacy is False:
             self.app.plotcanvas.graph_event_disconnect('key_press', self.app.ui.keyPressEvent)
             self.app.plotcanvas.graph_event_disconnect('key_press', self.app.ui.keyPressEvent)
@@ -1306,10 +1313,10 @@ class CutOut(AppTool):
         This only operates on the paths in the original geometry,
         This only operates on the paths in the original geometry,
         i.e. it converts polygons into paths.
         i.e. it converts polygons into paths.
 
 
-        :param x0: x coord for lower left vertice of the polygon.
-        :param y0: y coord for lower left vertice of the polygon.
-        :param x1: x coord for upper right vertice of the polygon.
-        :param y1: y coord for upper right vertice of the polygon.
+        :param x0: x coord for lower left vertex of the polygon.
+        :param y0: y coord for lower left vertex of the polygon.
+        :param x1: x coord for upper right vertex of the polygon.
+        :param y1: y coord for upper right vertex of the polygon.
 
 
         :param solid_geo: Geometry from which to substract. If none, use the solid_geomety property of the object
         :param solid_geo: Geometry from which to substract. If none, use the solid_geomety property of the object
         :return: none
         :return: none
@@ -1367,6 +1374,7 @@ def flatten(geometry):
 
 
 def recursive_bounds(geometry):
 def recursive_bounds(geometry):
     """
     """
+    Return the bounds of the biggest bounding box in geometry, one that include all.
 
 
     :param geometry:    a iterable object that holds geometry
     :param geometry:    a iterable object that holds geometry
     :return:            Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax).
     :return:            Returns coordinates of rectangular bounds of geometry: (xmin, ymin, xmax, ymax).

+ 6 - 4
AppTools/ToolNCC.py

@@ -1621,10 +1621,12 @@ class NonCopperClear(AppTool, Gerber):
                                                                     "use a number."))
                                                                     "use a number."))
                         continue
                         continue
 
 
-                if self.op_radio.get_value() == _("Isolation"):
-                    self.iso_dia_list.append(self.tooldia)
-                else:
-                    self.ncc_dia_list.append(self.tooldia)
+                for uid_k, uid_v in self.ncc_tools.items():
+                    if round(uid_v['tooldia'], self.decimals) == round(self.tooldia, self.decimals):
+                        if uid_v['data']['tools_nccoperation'] == "iso":
+                            self.iso_dia_list.append(self.tooldia)
+                        else:
+                            self.ncc_dia_list.append(self.tooldia)
         else:
         else:
             self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table."))
             self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table."))
             return
             return

+ 1 - 0
CHANGELOG.md

@@ -21,6 +21,7 @@ CHANGELOG for FlatCAM beta
 - added a Multi-color checkbox for the Geometry UI (will color differently tool geometry when the geometry is multitool)
 - added a Multi-color checkbox for the Geometry UI (will color differently tool geometry when the geometry is multitool)
 - added a Multi-color checkbox for the Excellon UI (this way colors for each tool are easier to differentiate especially when the diameter is close)
 - added a Multi-color checkbox for the Excellon UI (this way colors for each tool are easier to differentiate especially when the diameter is close)
 - made the Shell Dock always show docked
 - made the Shell Dock always show docked
+- fixed NCC Tool behavior when selecting tools for Isolation operation
 
 
 29.05.2020
 29.05.2020