- fixed the geometry adding to the self.apertures in the case when regions are done without declaring any aperture first (Allegro does that). Now, that geometry will be stored in the '0' aperture with type REG

This commit is contained in:
Marius Stanciu
2019-02-26 13:22:43 +02:00
committed by Marius
parent 74ecbabf1f
commit 00340287a4
2 changed files with 18 additions and 3 deletions

View File

@@ -2538,11 +2538,25 @@ class Gerber (Geometry):
if not region.is_empty:
poly_buffer.append(region)
# we do this for the case that a region is done without having defined any aperture
# Allegro does that
if current_aperture:
used_aperture = current_aperture
elif last_path_aperture:
used_aperture = last_path_aperture
else:
if '0' not in self.apertures:
self.apertures['0'] = {}
self.apertures['0']['solid_geometry'] = []
self.apertures['0']['type'] = 'REG'
used_aperture = '0'
try:
self.apertures[current_aperture]['solid_geometry'].append(region)
self.apertures[used_aperture]['solid_geometry'].append(region)
except KeyError:
self.apertures[current_aperture]['solid_geometry'] = []
self.apertures[current_aperture]['solid_geometry'].append(region)
self.apertures[used_aperture]['solid_geometry'] = []
self.apertures[used_aperture]['solid_geometry'].append(region)
path = [[current_x, current_y]] # Start new path
continue