Просмотр исходного кода

- fixed the Copy Object function to copy also the source_file content
- Copper Thieving Tool - when the clearance value for the pattern plating mask is negative it will be applied to the origin soldermask too

Marius Stanciu 6 лет назад
Родитель
Сommit
951562fbae
3 измененных файлов с 17 добавлено и 1 удалено
  1. 7 0
      FlatCAMApp.py
  2. 3 1
      README.md
  3. 7 0
      flatcamTools/ToolCopperThieving.py

+ 7 - 0
FlatCAMApp.py

@@ -7350,7 +7350,14 @@ class App(QtCore.QObject):
             except Exception as e:
             except Exception as e:
                 log.debug("App.on_copy_object() --> %s" % str(e))
                 log.debug("App.on_copy_object() --> %s" % str(e))
 
 
+            try:
+                obj_init.source_file = deepcopy(obj.source_file)
+            except (AttributeError, TypeError):
+                pass
+
         def initialize_excellon(obj_init, app):
         def initialize_excellon(obj_init, app):
+            obj_init.source_file = deepcopy(obj.source_file)
+
             obj_init.tools = deepcopy(obj.tools)
             obj_init.tools = deepcopy(obj.tools)
 
 
             # drills are offset, so they need to be deep copied
             # drills are offset, so they need to be deep copied

+ 3 - 1
README.md

@@ -14,12 +14,14 @@ CAD program, and create G-Code for Isolation routing.
 - made sure that if an older preferences file is detected then there are no errors and only the parameters that are currently active are loaded; the factory defaults file is deleted and recreated in the new format
 - made sure that if an older preferences file is detected then there are no errors and only the parameters that are currently active are loaded; the factory defaults file is deleted and recreated in the new format
 - in Preferences added a new button: 'Close' to close the Preferences window without saving
 - in Preferences added a new button: 'Close' to close the Preferences window without saving
 - fixed bug in FCSpinner and FCDoubleSpinner GUI elements, that are now the main GUI element in FlatCAM, that made partial selection difficult
 - fixed bug in FCSpinner and FCDoubleSpinner GUI elements, that are now the main GUI element in FlatCAM, that made partial selection difficult
-- updated the Paint Tool in Geometry Editor to use the FCDoublepinbox
+- updated the Paint Tool in Geometry Editor to use the FCDoublespinbox
 - added the possibility for suffix presence on the FCSpinner and FCDoubleSpinner GUI Elements
 - added the possibility for suffix presence on the FCSpinner and FCDoubleSpinner GUI Elements
 - added the '%' symbol for overlap fields; I still need to divide the content by 100 to get the original (0 ... 1) value
 - added the '%' symbol for overlap fields; I still need to divide the content by 100 to get the original (0 ... 1) value
 - fixed the overlap parameter all over the app to reflect the change to percentage
 - fixed the overlap parameter all over the app to reflect the change to percentage
 - in Copper Thieving Tool added the display of the patterned plated area (approximative area) 
 - in Copper Thieving Tool added the display of the patterned plated area (approximative area) 
 - Copper Thieving Tool - updated the way plated area is calculated making it a bit more precise but still it is a bit bigger than the actual area
 - Copper Thieving Tool - updated the way plated area is calculated making it a bit more precise but still it is a bit bigger than the actual area
+- fixed the Copy Object function to copy also the source_file content
+- Copper Thieving Tool - when the clearance value for the pattern plating mask is negative it will be applied to the origin soldermask too
 
 
 3.12.2019
 3.12.2019
 
 

+ 7 - 0
flatcamTools/ToolCopperThieving.py

@@ -1298,6 +1298,13 @@ class ToolCopperThieving(FlatCAMTool):
             if isinstance(app_obj.sm_object.solid_geometry, MultiPolygon):
             if isinstance(app_obj.sm_object.solid_geometry, MultiPolygon):
                 geo_list = list(app_obj.sm_object.solid_geometry.geoms)
                 geo_list = list(app_obj.sm_object.solid_geometry.geoms)
 
 
+            # if the clearance is negative apply it to the original soldermask too
+            if ppm_clearance < 0:
+                temp_geo_list = list()
+                for geo in geo_list:
+                    temp_geo_list.append(geo.buffer(ppm_clearance))
+                geo_list = temp_geo_list
+
             plated_area = 0.0
             plated_area = 0.0
             for geo in geo_list:
             for geo in geo_list:
                 plated_area += geo.area
                 plated_area += geo.area