diff options
Diffstat (limited to 'gerbonara')
-rw-r--r-- | gerbonara/layers.py | 34 | ||||
-rw-r--r-- | gerbonara/rs274x.py | 6 | ||||
-rw-r--r-- | gerbonara/tests/test_layers.py | 2 |
3 files changed, 22 insertions, 20 deletions
diff --git a/gerbonara/layers.py b/gerbonara/layers.py index b2b3900..a25a6a9 100644 --- a/gerbonara/layers.py +++ b/gerbonara/layers.py @@ -74,9 +74,9 @@ class NamingScheme: 'bottom paste': '{board_name}-B.Paste.gbr',
'inner copper': '{board_name}-In{layer_number}.Cu.gbr',
'mechanical outline': '{board_name}-Edge.Cuts.gbr',
- 'unknown drill': '{board_name}.drl',
- 'plated drill': '{board_name}-PTH.drl',
- 'nonplated drill': '{board_name}-NPTH.drl',
+ 'drill unknown': '{board_name}.drl',
+ 'drill plated': '{board_name}-PTH.drl',
+ 'drill nonplated': '{board_name}-NPTH.drl',
'other comments': '{board_name}-Cmts.User.gbr',
'other drawings': '{board_name}-Dwgs.User.gbr',
'top fabrication': '{board_name}-F.Fab.gbr',
@@ -97,9 +97,9 @@ class NamingScheme: 'bottom paste': '{board_name}.gbp',
'inner copper': '{board_name}.gp{layer_number}',
'mechanical outline': '{board_name}.gko',
- 'unknown drill': '{board_name}.drl',
- 'plated drill': '{board_name}.plated.drl',
- 'nonplated drill': '{board_name}.nonplated.drl',
+ 'drill unknown': '{board_name}.drl',
+ 'drill plated': '{board_name}.plated.drl',
+ 'drill nonplated': '{board_name}.nonplated.drl',
'other comments': '{board_name}.gm2',
'other drawings': '{board_name}.gm3',
'top courtyard': '{board_name}.gm13',
@@ -224,14 +224,14 @@ def _layername_autoguesser(fn): use = 'mask'
elif re.search('drill|rout?e?', fn):
- use = 'drill'
- side = 'unknown'
+ side = 'drill'
+ use = 'unknown'
if re.search(r'np(th|lt)?|(non|un)\W*plated|(non|un)\Wgalv', fn):
- side = 'nonplated'
+ use = 'nonplated'
elif re.search('pth|plated|galv|plt', fn):
- side = 'plated'
+ use = 'plated'
elif (m := re.search(r'(la?y?e?r?|in(ner)?|conduct(or|ive)?)\W*(?P<num>[0-9]+)', fn)):
use = 'copper'
@@ -281,9 +281,9 @@ class LayerStack: def __init__(self, graphic_layers, drill_pth=None, drill_npth=None, drill_layers=(), netlist=None, board_name=None, original_path=None, was_zipped=False, generator=None):
self.graphic_layers = graphic_layers
- self._drill_layers = list(drill_layers)
self.drill_pth = drill_pth
self.drill_npth = drill_npth
+ self._drill_layers = list(drill_layers)
self.drill_mixed = None
self.board_name = board_name
self.netlist = netlist
@@ -620,20 +620,20 @@ class LayerStack: #self.normalize_drill_layers()
if self.drill_pth is not None:
- yield get_name('plated drill', self.drill_pth), self.drill_pth
+ yield get_name('drill plated', self.drill_pth), self.drill_pth
if self.drill_npth is not None:
- yield get_name('nonplated drill', self.drill_npth), self.drill_npth
+ yield get_name('drill nonplated', self.drill_npth), self.drill_npth
for layer in self._drill_layers:
- yield get_name('unknown drill', layer), layer
+ yield get_name('drill unknown', layer), layer
if self.netlist:
yield get_name('other netlist', self.netlist), self.netlist
def __str__(self):
names = [ f'{side} {use}' for side, use in self.graphic_layers ]
- num_drill_layers = len(self.drill_layers)
+ num_drill_layers = len(list(self.drill_layers))
return f'<LayerStack {self.board_name} [{", ".join(names)}] and {num_drill_layers} drill layers>'
def __repr__(self):
@@ -752,11 +752,11 @@ class LayerStack: for i, layer in enumerate(self.drill_layers):
layers.append(tag('g', list(layer.instance.svg_objects(svg_unit=svg_unit, fg='white', bg='black', tag=Tag)),
- id=f'l-drill-{i}', filter=f'url(#f-drill)', **inkscape_attrs(f'drill-{i}')))
+ id=f'g-drill-{i}', filter=f'url(#f-drill)', **inkscape_attrs(f'drill-{i}')))
if self.outline:
layers.append(tag('g', list(self.outline.instance.svg_objects(svg_unit=svg_unit, fg='white', bg='black', tag=Tag)),
- id=f'l-outline-{i}', **inkscape_attrs(f'outline-{i}')))
+ id=f'g-outline-{i}', **inkscape_attrs(f'outline-{i}')))
layer_group = tag('g', layers, transform=f'translate(0 {bounds[0][1] + bounds[1][1]}) scale(1 -1)')
tags = [tag('defs', filter_defs), layer_group]
diff --git a/gerbonara/rs274x.py b/gerbonara/rs274x.py index 5ef93dd..6620f10 100644 --- a/gerbonara/rs274x.py +++ b/gerbonara/rs274x.py @@ -544,9 +544,11 @@ class GraphicsState: yield '%LPD*%' if polarity_dark else '%LPC*%' def set_aperture(self, aperture): - if self.aperture != aperture: + ap_id = self.aperture_map[id(aperture)] + old_ap_id = self.aperture_map.get(id(self.aperture), None) + if ap_id != old_ap_id: self.aperture = aperture - yield f'D{self.aperture_map[id(aperture)]}*' + yield f'D{ap_id}*' def set_current_point(self, point, unit=None): point_mm = MM(point[0], unit), MM(point[1], unit) diff --git a/gerbonara/tests/test_layers.py b/gerbonara/tests/test_layers.py index 445572b..980a303 100644 --- a/gerbonara/tests/test_layers.py +++ b/gerbonara/tests/test_layers.py @@ -335,7 +335,7 @@ def test_layer_classifier(ref_dir): else: # not in file_map assert (side, layer) not in stack - assert len(stack.drill_layers) == len(drill_files) + assert len(list(stack.drill_layers)) == len(drill_files) for filename, role in drill_files.items(): print('drill:', filename, role) |