|
@@ -3183,16 +3183,18 @@ class Gerber (Geometry):
|
|
|
temp_geo = []
|
|
temp_geo = []
|
|
|
for apid in self.apertures:
|
|
for apid in self.apertures:
|
|
|
if 'clear_geometry' in self.apertures[apid]:
|
|
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]['solid_geometry'] = deepcopy(temp_geo)
|
|
|
self.apertures[apid].pop('clear_geometry', None)
|
|
self.apertures[apid].pop('clear_geometry', None)
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
# --- Apply buffer ---
|
|
# --- Apply buffer ---
|
|
|
# this treats the case when we are storing geometry as paths
|
|
# this treats the case when we are storing geometry as paths
|
|
|
self.follow_geometry = follow_buffer
|
|
self.follow_geometry = follow_buffer
|