diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 123dc481..2787a485 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -94,8 +94,8 @@ class App(QtCore.QObject): log.addHandler(handler) # Version - version = 8.913 - version_date = "2019/04/13" + version = 8.914 + version_date = "2019/04/20" beta = True # current date now diff --git a/README.md b/README.md index f99f17da..0787fea9 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing. ================================================= +14.04.2019 + +- Gerber Editor: Remade the processing of 'clear_geometry' (geometry generated by polygons made with Gerber LPC command) to work if more than one such polygon exists + 13.04.2019 - updating the German translation diff --git a/camlib.py b/camlib.py index 16eddd60..c732b8a1 100644 --- a/camlib.py +++ b/camlib.py @@ -3183,16 +3183,18 @@ class Gerber (Geometry): temp_geo = [] for apid in self.apertures: if 'clear_geometry' in self.apertures[apid]: - for clear_geo in self.apertures[apid]['clear_geometry']: - for solid_geo in self.apertures[apid]['solid_geometry']: - if solid_geo.intersects(clear_geo): - res_geo = clear_geo.symmetric_difference(solid_geo) - temp_geo.append(res_geo) - else: - temp_geo.append(solid_geo) + clear_geo = cascaded_union(self.apertures[apid]['clear_geometry']) + for solid_geo in self.apertures[apid]['solid_geometry']: + if clear_geo.intersects(solid_geo): + res_geo = clear_geo.symmetric_difference(solid_geo) + temp_geo.append(res_geo) + else: + temp_geo.append(solid_geo) self.apertures[apid]['solid_geometry'] = deepcopy(temp_geo) self.apertures[apid].pop('clear_geometry', None) + + # --- Apply buffer --- # this treats the case when we are storing geometry as paths self.follow_geometry = follow_buffer