summaryrefslogtreecommitdiff
path: root/gerber/am_eval.py
diff options
context:
space:
mode:
authorHamilton Kibbe <hamilton.kibbe@gmail.com>2016-01-21 03:57:44 -0500
committerHamilton Kibbe <hamilton.kibbe@gmail.com>2016-01-21 03:57:44 -0500
commit5476da8aa3f4ee424f56f4f2491e7af1c4b7b758 (patch)
tree427dafda78ee21a1846a2b9c9747dd96afe7e8a3 /gerber/am_eval.py
parent7a532514631384dbfc9d7fc2002cbbfe52433c9f (diff)
downloadgerbonara-5476da8aa3f4ee424f56f4f2491e7af1c4b7b758.tar.gz
gerbonara-5476da8aa3f4ee424f56f4f2491e7af1c4b7b758.tar.bz2
gerbonara-5476da8aa3f4ee424f56f4f2491e7af1c4b7b758.zip
Fix a bunch of rendering bugs.
- 'clear' polarity primitives no longer erase background - Added aperture macro support for polygons - Added aperture macro rendring support - Renderer now creates a new surface for each layer and merges them instead of working directly on a single surface - Updated examples accordingly
Diffstat (limited to 'gerber/am_eval.py')
-rw-r--r--gerber/am_eval.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/gerber/am_eval.py b/gerber/am_eval.py
index 29b380d..3a7e1ed 100644
--- a/gerber/am_eval.py
+++ b/gerber/am_eval.py
@@ -18,15 +18,16 @@
""" This module provides RS-274-X AM macro evaluation.
"""
+
class OpCode:
- PUSH = 1
- LOAD = 2
+ PUSH = 1
+ LOAD = 2
STORE = 3
- ADD = 4
- SUB = 5
- MUL = 6
- DIV = 7
- PRIM = 8
+ ADD = 4
+ SUB = 5
+ MUL = 6
+ DIV = 7
+ PRIM = 8
@staticmethod
def str(opcode):
@@ -49,16 +50,18 @@ class OpCode:
else:
return "UNKNOWN"
+
def eval_macro(instructions, parameters={}):
if not isinstance(parameters, type({})):
p = {}
for i, val in enumerate(parameters):
- p[i+1] = val
+ p[i + 1] = val
parameters = p
stack = []
+
def pop():
return stack.pop()