diff --git a/README.md b/README.md index f65454bd..b75d5327 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ CAD program, and create G-Code for Isolation routing. 26.02.2019 - added a function to read the parameters from ToolChange macro Text Box (I need to move it from CNCJob to Excellon and Geometry) +- 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 25.02.2019 diff --git a/camlib.py b/camlib.py index 55e961b2..bbc98324 100644 --- a/camlib.py +++ b/camlib.py @@ -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