summaryrefslogtreecommitdiff
path: root/gerber/render/theme.py
diff options
context:
space:
mode:
authorHamilton Kibbe <hamilton.kibbe@gmail.com>2015-12-22 02:45:48 -0500
committerHamilton Kibbe <hamilton.kibbe@gmail.com>2015-12-22 02:47:23 -0500
commit6f876edd09d9b81649691e529f85653f14b8fd1c (patch)
tree808e3ea789816452f52e834d4c5c1744bdee6541 /gerber/render/theme.py
parentaf5541ac93b222c05229ee05c9def8dbae5f6e25 (diff)
downloadgerbonara-6f876edd09d9b81649691e529f85653f14b8fd1c.tar.gz
gerbonara-6f876edd09d9b81649691e529f85653f14b8fd1c.tar.bz2
gerbonara-6f876edd09d9b81649691e529f85653f14b8fd1c.zip
Add PCB interface
this incorporates some of @chintal's layers.py changes PCB.from_directory() simplifies loading of multiple gerbers the PCB() class should be pretty helpful going forward... the context classes could use some cleaning up, although I'd like to wait until the freecad stuff gets merged, that way we can try to refactor the context base to support more use cases
Diffstat (limited to 'gerber/render/theme.py')
-rw-r--r--gerber/render/theme.py34
1 files changed, 23 insertions, 11 deletions
diff --git a/gerber/render/theme.py b/gerber/render/theme.py
index eae3735..5978831 100644
--- a/gerber/render/theme.py
+++ b/gerber/render/theme.py
@@ -19,6 +19,9 @@
COLORS = {
'black': (0.0, 0.0, 0.0),
'white': (1.0, 1.0, 1.0),
+ 'red': (1.0, 0.0, 0.0),
+ 'green': (0.0, 1.0, 0.0),
+ 'blue' : (0.0, 0.0, 1.0),
'fr-4': (0.290, 0.345, 0.0),
'green soldermask': (0.0, 0.612, 0.396),
'blue soldermask': (0.059, 0.478, 0.651),
@@ -31,29 +34,38 @@ COLORS = {
class RenderSettings(object):
- def __init__(self, color, alpha=1.0, invert=False):
+ def __init__(self, color, alpha=1.0, invert=False, mirror=False):
self.color = color
self.alpha = alpha
- self.invert = False
+ self.invert = invert
+ self.mirror = mirror
class Theme(object):
- def __init__(self, **kwargs):
- self.background = kwargs.get('background', RenderSettings(COLORS['black'], 0.0))
+ def __init__(self, name=None, **kwargs):
+ self.name = 'Default' if name is None else name
+ self.background = kwargs.get('background', RenderSettings(COLORS['black'], alpha=0.0))
self.topsilk = kwargs.get('topsilk', RenderSettings(COLORS['white']))
self.bottomsilk = kwargs.get('bottomsilk', RenderSettings(COLORS['white']))
- self.topmask = kwargs.get('topmask', RenderSettings(COLORS['green soldermask'], 0.8, True))
- self.bottommask = kwargs.get('bottommask', RenderSettings(COLORS['green soldermask'], 0.8, True))
+ self.topmask = kwargs.get('topmask', RenderSettings(COLORS['green soldermask'], alpha=0.8, invert=True))
+ self.bottommask = kwargs.get('bottommask', RenderSettings(COLORS['green soldermask'], alpha=0.8, invert=True))
self.top = kwargs.get('top', RenderSettings(COLORS['hasl copper']))
self.bottom = kwargs.get('top', RenderSettings(COLORS['hasl copper']))
- self.drill = kwargs.get('drill', self.background)
+ self.drill = kwargs.get('drill', RenderSettings(COLORS['black']))
+ self.ipc_netlist = kwargs.get('ipc_netlist', RenderSettings(COLORS['red']))
+ def __getitem__(self, key):
+ return getattr(self, key)
THEMES = {
'Default': Theme(),
- 'Osh Park': Theme(top=COLORS['enig copper'],
- bottom=COLORS['enig copper'],
- topmask=COLORS['purple soldermask'],
- bottommask=COLORS['purple soldermask']),
+ 'OSH Park': Theme(name='OSH Park',
+ top=RenderSettings(COLORS['enig copper']),
+ bottom=RenderSettings(COLORS['enig copper']),
+ topmask=RenderSettings(COLORS['purple soldermask'], alpha=0.8, invert=True),
+ bottommask=RenderSettings(COLORS['purple soldermask'], alpha=0.8, invert=True)),
+ 'Blue': Theme(name='Blue',
+ topmask=RenderSettings(COLORS['blue soldermask'], alpha=0.8, invert=True),
+ bottommask=RenderSettings(COLORS['blue soldermask'], alpha=0.8, invert=True)),
}