diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cfe56aa
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,19 @@
+# Byte-compiled / optimized
+*.pyc
+*.pyo
+__pycache__/
+
+# Virtual environments
+venv/
+.venv/
+env/
+
+# IDE
+.idea/
+.vscode/
+*.swp
+*~
+
+# OS
+.DS_Store
+Thumbs.db
diff --git a/Command.py b/Command.py
index 8a055e9..698b451 100755
--- a/Command.py
+++ b/Command.py
@@ -1,82 +1,74 @@
# -*- coding: utf-8 -*-
+import math
+
class Command:
- inicoms= ("IN", "SP", "LT") # nicht benutzt
- scalecoms=("PA", "PD", "PR", "PU", "CI" ) # Liste skalierbarer HPGL-Befehle
- movecoms=("PA", "PD", "PU" ) # Liste verschiebbarer HPGL-Befehle
-
+ inicoms = ("IN", "SP", "LT") # nicht benutzt
+ scalecoms = ("PA", "PD", "PR", "PU", "CI") # Liste skalierbarer HPGL-Befehle
+ movecoms = ("PA", "PD", "PU") # Liste verschiebbarer HPGL-Befehle
+ abscoms = ("PA", "PD", "PU")
+ relcoms = ("PR")
+ arccoms = ("CI", "AA")
+
def __init__(self, name, *args):
- self.name = name # Befehlname
- self.args = args # Argsliste
+ self.name = name
+ self.args = args
@property
- def scalable(self):
- return True \
- if self.name in Command.scalecoms and self.args else \
- False
-
+ def scalable(self):
+ return self.name in Command.scalecoms and self.args
+
@property
- def movable(self):
- return True \
- if self.name in Command.movecoms and self.args else \
- False
+ def movable(self):
+ return self.name in Command.movecoms and self.args
@property
def x(self):
- #Baustelle da es Befehle gibt die mehrere Args haben
- return self.args[0] \
- if self.movable else\
- None
+ return self.args[0] if self.args else None
@property
def y(self):
- if len(self.args)<2 :
- return None
- return self.args[1] \
- if self.movable else\
- None
+ return self.args[-1] if self.args else None
def __trunc__(self):
- return Command(self.name,*[int(arg) for arg in self.args])
+ return Command(self.name, *[int(arg) for arg in self.args])
def __len__(self):
- return len(str(self)) # Byte-L�nge des Befehls
-
- def __str__(self):
- return self.name + ",".join(str(int(arg)) for arg in self.args) + ";"
+ return len(str(self))
- def __mul__(self, factor): # multipliziert falls skalable mit factor
+ def __str__(self):
+ return self.name + ",".join(str(int(arg)) for arg in self.args) + ";"
+
+ def __mul__(self, factor):
if not self.scalable:
return self
if type(factor) == type(0) or type(factor) == type(0.0):
-# Faktor kann skalar oder Tuple sein
- factor = (factor, factor)
- return Command(self.name,(self.args[0] * factor[0]),(self.args[1] * factor[1])) \
- if len(self.args)>1 else\
- Command(self.name,(self.args[0]*factor[0]) ) # wichtig f�r Befehle mit nur einem Argument
+ factor = (factor, factor)
+ return Command(self.name, (self.args[0] * factor[0]), (self.args[1] * factor[1])) \
+ if len(self.args) > 1 else \
+ Command(self.name, (self.args[0] * factor[0]))
def __add__(self, addend):
if not self.movable:
return self
- if type(addend) == type(0) or type(addend) == type(0.0):
+ if type(addend) == type(0) or type(addend) == type(0.0):
addend = (addend, addend)
- #print( "ADD ", self.name )
- return Command(self.name,(self.x + addend[0]),(self.y + addend[1]))
+ return Command(self.name, (self.x + addend[0]), (self.y + addend[1]))
def __sub__(self, addend):
if type(addend) == type(0) or type(addend) == type(0.0):
addend = (addend, addend)
return self + (-addend[0], -addend[1])
- def rotate(self, angl): # multiplikation mit Rot-Matrix
+ def rotate(self, angl):
if not self.movable:
return self
- cosa=math.cos(angl*math.pi/180)
- sina=math.sin(angl*math.pi/180)
- return Command((self.name,self.x*cosa-self.y*sina),(self.y*cosa+self.x*sina))
-
- def flip(self): # Spiegelung
+ cosa = math.cos(angl * math.pi / 180)
+ sina = math.sin(angl * math.pi / 180)
+ return Command(self.name, (self.x * cosa - self.y * sina), (self.y * cosa + self.x * sina))
+
+ def flip(self):
if not self.movable:
return self
- return Command(self.name,self.y,-self.x)
+ return Command(self.name, self.x, -self.y)
diff --git a/Fensterplott.zip b/Fensterplott.zip
deleted file mode 100755
index 906e634..0000000
Binary files a/Fensterplott.zip and /dev/null differ
diff --git a/Plotter.py b/Plotter.py
index 6c063f3..51fb53c 100755
--- a/Plotter.py
+++ b/Plotter.py
@@ -1,89 +1,86 @@
from __future__ import division
-import pyserial
+import serial
-class Plotter:
- def __init__(self,boundaries=None):
- self.__boundaries=boundaries
- self.p0incenter = True
+class Plotter:
+
+ def __init__(self, boundaries=None):
+ self.boundaries = boundaries
+ self.p0incenter = False
if not boundaries:
- s=self.getoutput('OW;')
+ s = self.getoutput(b'OW;')
print(s)
if not s:
- self.ser=None
+ self.ser = None
else:
- self.__boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- def getoutput(self,outstr):
+ self.boundaries = tuple(int(x) for x in "".join(s).split(","))
+
+ def getoutput(self, outstr):
try:
- self.ser = serial.Serial('/dev/ttyUSB0',timeout=15)
+ self.ser = serial.Serial('/dev/ttyUSB0', timeout=15)
print('try to get Status')
if not self.ser:
print('Plotter not available')
- return None
+ return None
self.ser.write(outstr)
print('device busy')
s = []
while True:
x = self.ser.read()
-
- if x == "\x0d" or not x:
+ if x == b"\x0d" or not x:
break
s.append(x)
- return ''.join(s)
+ return b''.join(s).decode()
except OSError:
return None
+
@property
def xmin(self):
- return self.__boundaries[0]
+ return self.boundaries[0]
@property
def ymin(self):
- return self.__boundaries[1]
+ return self.boundaries[1]
@property
def xmax(self):
- return self.__boundaries[2]
+ return self.boundaries[2]
@property
def ymax(self):
- return self.__boundaries[3]
+ return self.boundaries[3]
@property
def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
+ return (self.xmin + self.xmax) / 2, (self.ymin + self.ymax) / 2
- def write(self,programm):
- self.ser.write(str(programm))
+ def write(self, programm):
+ self.ser.write(str(programm).encode())
@property
def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
+ return self.xmax - self.xmin, self.ymax - self.ymin
+
def oob(self, prog):
- return (prog.xmax > self.xmax or prog.xmin < self.xmin or prog.ymin < self.ymin or prog.ymax > self.ymax)
+ return (prog.xmax > self.xmax or prog.xmin < self.xmin or
+ prog.ymin < self.ymin or prog.ymax > self.ymax)
- def full(self,prog):
- arg = min(self.winsize[0]/prog.winsize[0],self.winsize[1]/prog.winsize[1])
- #print self.winsize[0]/prog.winsize[0],self.winsize[1]/prog.winsize[1])
- print('Scale Factor', arg)
- return prog*arg
+ def full(self, prog):
+ """Scale program to fit plotter bounds."""
+ arg = min(self.winsize[0] / prog.winsize[0], self.winsize[1] / prog.winsize[1])
+ return prog * arg
- def plot(self,prog):
- if self.ready and (not self.oob(prog)) :
+ def plot(self, prog):
+ if self.ready and (not self.oob(prog)):
self.write(prog)
-
if self.oob(prog):
print('programm out of bound')
if not self.ready:
print('device not ready')
-
-
- def centralize(self,prog):
- return prog-prog.center \
- if self.p0incenter else \
- prog-(prog.xmin,prog.ymin)
+
+ def centralize(self, prog):
+ return prog - prog.center if self.p0incenter else prog - (prog.xmin, prog.ymin)
+
@property
def ready(self):
- return bool(self.getoutput('OS;'))
-
+ return bool(self.getoutput('OS;'))
diff --git a/Program.py b/Program.py
index b0725df..cd8770a 100755
--- a/Program.py
+++ b/Program.py
@@ -1,75 +1,130 @@
-
import math
from Command import *
+import tkinter as tk
+
class Program:
- def __init__(self, commands=None):
- self.commands = commands or []
- self.active=True
- self.visible=False
- self.filename=''
-
+ def __init__(self, commands=None):
+ self.commands = commands if commands is not None else []
+ self.active = True
+ self.visible = False
+ self.filename = ''
+ if self.commands:
+ self.xmin, self.ymin, self.xmax, self.ymax = self.__simulate()
+ else:
+ self.xmin = self.ymin = self.xmax = self.ymax = 0
- def parsefile(self, filename):
- with open(filename) as file:
- self.parse( file.read())
+ def __simulate(self):
+ (x, y) = (0, 0)
+ xy = []
+ for command in self.commands:
+ if not command.args:
+ continue
+ elif command.name in command.abscoms:
+ x, y = command.x, command.y
+ xy.append((x, y))
+ elif command.name in command.relcoms:
+ x, y = x + command.x, y + command.y
+ xy.append((x, y))
+ elif command.name in command.arccoms:
+ xy += [(x + command.x, y + command.x), (x - command.x, y - command.x)]
+ if not xy:
+ return [0, 0, 0, 0]
+ return [m([v[i] for v in xy]) for m, i in ((min, 0), (min, 1), (max, 0), (max, 1))]
- def parse(self, code):
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [float(arg) for arg in args.split(",")] if args else []
- # Experimental
- #if name=='CI':
- #self.commands.append(Command('PR',args[0]))
- #self.commands.append(Command('PR',args[0]))
- #self.commands.append(Command('PR',args[0]))
-
- self.commands.append(Command(name, *args))
-
+ @staticmethod
+ def parsefile(filename):
+ with open(filename) as file:
+ return Program.parse(file.read())
- def __trunc__ (self):
- return Program([int(command) for command in self.commands])
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
+ @staticmethod
+ def parse(code):
+ commands = []
+ for command in code.strip().split(";")[:-1]:
+ name, args = command[:2], command[2:]
+ args = [float(arg) for arg in args.split(",")] if args else []
+ if name in Command.movecoms and len(args) > 2:
+ for i in range(0, len(args), 2):
+ commands.append(Command(name, args[i], args[i + 1]))
+ else:
+ commands.append(Command(name, *args))
+ return Program(commands)
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
+ def show(self, w=None):
+ p = self.flip()
+ p = p.rotate(270)
+ p = p.fitin((0, 0, 1024, 600), (0, 0))
+ win = tk.Tk()
+ win.title('HPGLPLOTTER')
+ canvas = tk.Canvas(win, width=p.winsize[0], height=p.winsize[1])
+ canvas.grid(row=0, column=0)
+ x = y = 0
+ for command in p.commands:
+ if command.name == 'PU':
+ x, y = command.x, command.y
+ elif command.name == 'PD':
+ canvas.create_line(x, y, command.x, command.y)
+ x, y = command.x, command.y
+ elif command.name == 'CI':
+ r = command.args[0]
+ canvas.create_oval(x - r, y - r, x + r, y + r)
+ win.mainloop()
- def __add__(self, arg):
- if type(arg)== type(self):
- return Program( self.commands + arg.commands )
- return Program([command + arg for command in self.commands])
+ def __str__(self):
+ return "".join(str(command) for command in self.commands)
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
+ def __mul__(self, arg):
+ return Program([command * arg for command in self.commands])
- def __len__(self):
- return len(str(self))
+ def __add__(self, arg):
+ if type(arg) == type(self):
+ return Program(self.commands + arg.commands)
+ return Program([command + arg for command in self.commands])
- def rotate(self, angl):
- return Program([command.rotate(angl) for command in self.commands])
+ def __sub__(self, arg):
+ return Program([command - arg for command in self.commands])
- def flip(self):
- return Program([command.flip() for command in self.commands if command])
+ def __len__(self):
+ return len(str(self))
- @property
- def xmax(self):
- return max(command.x for command in self.commands if command.x and command.movable)
- @property
- def xmin(self):
- return min(command.x for command in self.commands if command.x and command.movable)
- @property
- def ymax(self):
- return max(command.y for command in self.commands if command.y and command.movable)
- @property
- def ymin(self):
- return min(command.y for command in self.commands if command.y and command.movable)
- @property
- def center(self):
- return ((self.xmin+self.xmax)/2),((self.ymin+self.ymax)/2)
+ def rotate(self, angl):
+ return Program([command.rotate(angl) for command in self.commands])
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
+ def flip(self):
+ return Program([command.flip() for command in self.commands if command])
+
+ def scaleto(self, ab):
+ a, b = ab
+ w, h = self.winsize
+ if w == 0 or h == 0:
+ return self
+ return self * min(a / w, b / h)
+
+ def moveto(self, ab):
+ a, b = ab
+ return self - (self.xmin - a, self.ymin - b)
+
+ def fitin(self, xys, fxy):
+ (x1, y1, x2, y2) = xys
+ (fx, fy) = fxy
+ p = self.scaleto((x2 - x1, y2 - y1))
+ return p.moveto((x1 + fx * (x2 - x1 - p.winsize[0]), y1 + fy * (y2 - y1 - p.winsize[1])))
+
+ def multi(self, w, h):
+ dist = 40
+ out = self
+ p = self.winsize
+ for i in range(w):
+ for j in range(h):
+ if w != 0 and h != 0:
+ out = out + (self + (i * p[0] + i * dist, j * p[1] + j * dist))
+ return out
+
+ @property
+ def center(self):
+ return ((self.xmin + self.xmax) / 2), ((self.ymin + self.ymax) / 2)
+
+ @property
+ def winsize(self):
+ return self.xmax - self.xmin, self.ymax - self.ymin
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5215729
--- /dev/null
+++ b/README.md
@@ -0,0 +1,42 @@
+# HPGL Plotter Manager
+
+Manage HPGL files and send them to a plotter. Single core library (refac version at root), generators, and unified output folder for all graphics.
+
+## Folder structure
+
+```
+mimaki/
+├── Command.py, Program.py, Plotter.py # Core HPGL library (parse, scale, send to plotter)
+├── main.py # Main entry: load HPGL, scale, send to plotter
+├── maintk.py, hpglView.py # Tk-based viewer / GUI
+├── output/ # All HPGL and SVG files
+│ ├── hpgl/ # HPGL plot files
+│ └── svg/ # SVG and related assets
+├── generators/ # Scripts that generate HPGL (or related graphics)
+│ ├── hilbert.py, koche.py, koch.py, kochger.py
+│ ├── mandelbrot.py, moebius.py, potter.py
+│ ├── refac/ # hilbert, lorenz, K18650, Kleber
+│ └── apollon/ # Apollonian gasket → SVG/HPGL
+└── docs/ # HPGL / plotter documentation (PDFs)
+```
+
+## Usage
+
+- **Run main (load file and send to plotter):**
+ From project root: `python main.py`
+ Edit `main.py` to change the file (default: `output/hpgl/kreis.hpgl`).
+
+- **Load HPGL and show in window:**
+ `python show_hpgl.py`
+
+- **Run a generator:**
+ From project root, e.g.
+ `python generators/potter.py`
+
+- **Open/save files in GUI:**
+ `python maintk.py` — use File → Open and point to files under `output/hpgl/` or `output/svg/`.
+
+## Paths
+
+- All HPGL and SVG live under **`output/hpgl/`** and **`output/svg/`**.
+- Run scripts from the project root so paths like `output/hpgl/...` resolve correctly.
diff --git a/TUlogo.png b/TUlogo.png
deleted file mode 100755
index 708f050..0000000
Binary files a/TUlogo.png and /dev/null differ
diff --git a/apollon-master/.gitignore b/apollon-master/.gitignore
deleted file mode 100755
index 2358b09..0000000
--- a/apollon-master/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*~
-*pyc
-__pycache__/
-html/
\ No newline at end of file
diff --git a/apollon.html b/apollon.html
deleted file mode 100755
index 0ffda06..0000000
--- a/apollon.html
+++ /dev/null
@@ -1,1338 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- apollon/apollon.py at master · lsandig/apollon · GitHub
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Skip to content
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Something went wrong with that request. Please try again.
-
-
-
-
-
-
-
-
-
-
You signed in with another tab or window. Reload to refresh your session.
-
You signed out in another tab or window. Reload to refresh your session.
-
-
-
-
diff --git a/docs/refac-vs-root-diff.md b/docs/refac-vs-root-diff.md
new file mode 100644
index 0000000..67ae407
--- /dev/null
+++ b/docs/refac-vs-root-diff.md
@@ -0,0 +1,63 @@
+# refac vs root (historical)
+
+**The refac version is now the main version** (root Command.py, Program.py, Plotter.py). This doc is kept for reference.
+
+Original comparison of the core modules: **Command.py**, **Program.py**, **Plotter.py**.
+
+---
+
+## Command.py
+
+| Aspect | Root | refac |
+|--------|------|--------|
+| **import math** | ❌ Missing (bug: `rotate()` uses `math.cos`/`math.sin`) | ✅ Present |
+| **Class attributes** | `inicoms`, `scalecoms`, `movecoms` only | Same + **`abscoms`**, **`relcoms`**, **`arccoms`** (for PA/PD/PU, PR, CI/AA) |
+| **scalable / movable** | `return True if ... else False` | `return self.name in ... and self.args` (shorter, same meaning) |
+| **x** | `self.args[0] if self.movable else None` | `self.args[0] if self.args else None` |
+| **y** | `self.args[1] if self.movable else None` (and `len(self.args)<2` check with wrong indent) | `self.args[-1] if self.args else None` (works for single-arg commands like CI) |
+| **rotate()** | `Command((self.name, ...), (...))` → **bug**: first arg is a tuple, not name | ✅ `Command(self.name, ...)` |
+| **flip()** | `Command(self.name, self.y, -self.x)` → **wrong**: swaps x/y | ✅ `Command(self.name, self.x, -self.y)` (mirror in y) |
+
+**Summary:** refac fixes missing `math`, corrects `rotate()` and `flip()`, and adds command-type sets used by Program parsing/simulation.
+
+---
+
+## Program.py
+
+| Aspect | Root | refac |
+|--------|------|--------|
+| **__init__** | `commands or []`; no bounds | `commands` (can be None); if commands given, **computes bounds once** via `__simulate()` |
+| **Bounds (xmin, xmax, …)** | **@property** – computed from commands each time | Set once in **__init__** from `__simulate()` (no property; no update if commands change) |
+| **parsefile / parse** | **Instance methods**: `p.parsefile(f)` mutates `self.commands` | **@staticmethod**: `Program.parsefile(f)` / `Program.parse(code)` **return new Program** |
+| **Parsing** | One Command per semicolon; all args in one list | **Multi-point PA/PD/PU**: if `len(args)>2`, splits into (x,y) pairs and creates one Command per point |
+| **show()** | ❌ Not in Program (show in main.py) | ✅ **Program.show()**: flip, rotate 270°, fitin to 1024×600, Tk canvas |
+| **fitin(), scaleto(), moveto()** | ❌ Not in root | ✅ Present (scale/move to rectangle with alignment fx, fy) |
+| **multi(w, h)** | ❌ Not in root | ✅ Tile program in w×h grid with spacing |
+| **Program.parse() return** | N/A (mutates self) | Returns **Program(commands)** |
+
+**Summary:** refac adds static parsing (return new Program), multi-point parsing, simulation for bounds, and helpers: show(), fitin(), scaleto(), moveto(), multi().
+
+---
+
+## Plotter.py
+
+| Aspect | Root | refac |
+|--------|------|--------|
+| **Import** | `import pyserial` (wrong name; should be `serial`) | `import serial` |
+| **Boundaries storage** | `self.__boundaries` (private) | `self.boundaries` (public) |
+| **p0incenter** | `True` | `False` |
+| **getoutput()** | `self.ser.read()` → str; returns `''.join(s)` | **Bytes**: `outstr` used as-is; `x == b"\x0d"`; returns `b''.join(s).decode()` |
+| **write()** | `self.ser.write(str(programm))` (str) | `self.ser.write(str(programm).encode())` (bytes) |
+| **full(prog)** | ✅ Scale prog to fit plotter bounds | ❌ **Removed** (scaling done elsewhere, e.g. Program.fitin) |
+| **centralize()** | Same logic | Same logic (behavior differs only if p0incenter differs) |
+
+**Summary:** refac uses proper `serial` and bytes for Python 3; drops `full()`; different default for `p0incenter`.
+
+---
+
+## Overall
+
+- **refac** = cleaned-up, Python‑3‑friendly version: correct Command (math, rotate, flip), static Program parsing, multi-point parsing, bounds simulation, fitin/show/multi, and serial over bytes.
+- **Root** = older version: Command has bugs (no math, wrong rotate/flip), instance-method parsing only, no fitin/show/multi, and broken `pyserial` import.
+
+Recommendation: use **refac** as the main implementation and, if needed, replace root with it (or make root a thin wrapper around refac).
diff --git a/apollon-master/LICENSE b/generators/apollon/LICENSE
similarity index 100%
rename from apollon-master/LICENSE
rename to generators/apollon/LICENSE
diff --git a/apollon-master/README.rst b/generators/apollon/README.rst
similarity index 100%
rename from apollon-master/README.rst
rename to generators/apollon/README.rst
diff --git a/apollon-master/ag.py b/generators/apollon/ag.py
similarity index 100%
rename from apollon-master/ag.py
rename to generators/apollon/ag.py
diff --git a/apollon-master/apollon.py b/generators/apollon/apollon.py
similarity index 100%
rename from apollon-master/apollon.py
rename to generators/apollon/apollon.py
diff --git a/apollon-master/colorbrewer.json b/generators/apollon/colorbrewer.json
similarity index 100%
rename from apollon-master/colorbrewer.json
rename to generators/apollon/colorbrewer.json
diff --git a/apollon-master/coloring.py b/generators/apollon/coloring.py
similarity index 100%
rename from apollon-master/coloring.py
rename to generators/apollon/coloring.py
diff --git a/apollon-master/index.cgi b/generators/apollon/index.cgi
similarity index 100%
rename from apollon-master/index.cgi
rename to generators/apollon/index.cgi
diff --git a/hilbert.py b/generators/hilbert.py
similarity index 80%
rename from hilbert.py
rename to generators/hilbert.py
index 50409ae..66427be 100644
--- a/hilbert.py
+++ b/generators/hilbert.py
@@ -1,6 +1,9 @@
-import math
+import math
+import sys
+import os
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from hilbertcurve.hilbertcurve import HilbertCurve
-penthickness=28
+penthickness = 28
import Program
import Command
diff --git a/koch.py b/generators/koch.py
similarity index 100%
rename from koch.py
rename to generators/koch.py
diff --git a/koche.py b/generators/koche.py
similarity index 85%
rename from koche.py
rename to generators/koche.py
index 515a773..da23d42 100755
--- a/koche.py
+++ b/generators/koche.py
@@ -1,6 +1,11 @@
-import math
+import math
+import sys
+import os
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+import Program
+import Command
-C = math.sqrt( 3 )
+C = math.sqrt(3)
def koch( x, y, smin=1, nmax=None ):
r=min(x,y)
diff --git a/kochger.py b/generators/kochger.py
similarity index 100%
rename from kochger.py
rename to generators/kochger.py
diff --git a/mandelbrot.py b/generators/mandelbrot.py
similarity index 100%
rename from mandelbrot.py
rename to generators/mandelbrot.py
diff --git a/moebius.py b/generators/moebius.py
similarity index 100%
rename from moebius.py
rename to generators/moebius.py
diff --git a/potter.py b/generators/potter.py
similarity index 80%
rename from potter.py
rename to generators/potter.py
index fa0fe3a..e4b4529 100755
--- a/potter.py
+++ b/generators/potter.py
@@ -1,3 +1,6 @@
+import sys
+import os
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from Plotter import *
from Command import *
from Program import *
@@ -25,9 +28,8 @@ def show(p):
canvas.create_oval(x-r,y-r,x+r,y+r)
win.mainloop()
-plt=Plotter()
-p=Program()
-p.parsefile('hpgl/Lars.plt')
+plt = Plotter()
+p = Program.parsefile('output/hpgl/Lars.plt')
p=p.flip()
p=plt.full(p)
p=plt.centralize(p)
diff --git a/refac/K18650.py b/generators/refac/K18650.py
similarity index 86%
rename from refac/K18650.py
rename to generators/refac/K18650.py
index 1f981d2..adaa62e 100755
--- a/refac/K18650.py
+++ b/generators/refac/K18650.py
@@ -1,3 +1,6 @@
+import sys
+import os
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Command import *
from Program import *
import math
diff --git a/refac/Kleber.py b/generators/refac/Kleber.py
similarity index 68%
rename from refac/Kleber.py
rename to generators/refac/Kleber.py
index e85778a..9b5c6ea 100755
--- a/refac/Kleber.py
+++ b/generators/refac/Kleber.py
@@ -1,3 +1,6 @@
+import sys
+import os
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Command import *
from Program import *
diff --git a/refac/hilbert.py b/generators/refac/hilbert.py
similarity index 83%
rename from refac/hilbert.py
rename to generators/refac/hilbert.py
index 213babf..47e7cc4 100755
--- a/refac/hilbert.py
+++ b/generators/refac/hilbert.py
@@ -1,4 +1,7 @@
import math
+import sys
+import os
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from Program import Program
from Command import Command
diff --git a/refac/lorenz.py b/generators/refac/lorenz.py
similarity index 90%
rename from refac/lorenz.py
rename to generators/refac/lorenz.py
index e2f70e7..6c1cc1a 100644
--- a/refac/lorenz.py
+++ b/generators/refac/lorenz.py
@@ -1,4 +1,7 @@
import numpy as np
+import sys
+import os
+sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '..'))
from scipy.integrate import odeint
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
diff --git a/hpgl/ag.hpgl b/hpgl/ag.hpgl
deleted file mode 100755
index dfc8f04..0000000
--- a/hpgl/ag.hpgl
+++ /dev/null
@@ -1 +0,0 @@
-IN;SP1;PU0.1,0.057735026919;CI0.216470053838;PU0.0,0.0;CI0.099;PU0.2,0.0;CI0.099;PU0.1,0.173205080757;CI0.099;PU0.1,0.057735026919;CI0.0144700538379;PU0.118834516088,0.0686091398527;CI0.00527817202947;PU0.0811654839116,0.0686091398527;CI0.00527817202947;PU0.1,0.0359868010516;CI0.00527817202947;PU0.127218008394,0.073449351392;CI0.00240225104924;PU0.110920700283,0.0716061792646;CI0.00118414005657;PU0.117473120453,0.0602570546182;CI0.00118414005657;PU0.132012698227,0.0762175668575;CI0.00113417988177;PU0.072781991606,0.073449351392;CI0.00240225104924;PU0.0890792997172,0.0716061792646;CI0.00118414005657;PU0.0825268795475,0.0602570546182;CI0.00118414005657;PU0.0679873017735,0.0762175668575;CI0.00113417988177;PU0.1,0.0263063779729;CI0.00240225104924;PU0.10655242017,0.0413418468741;CI0.00118414005657;PU0.0934475798303,0.0413418468741;CI0.00118414005657;PU0.1,0.0207699470418;CI0.00113417988177;PU0.244801847548,0.14133641258;CI0.047267282516;PU-0.044801847548,0.14133641258;CI0.047267282516;PU0.1,-0.109467744403;CI0.047267282516;PU0.192940094373,0.111394015424;CI0.0106175117966;PU0.218612978474,0.208393744031;CI0.0227225956947;PU0.289780765558,0.0851275209394;CI0.0227225956947;PU0.17835519475,0.1029734197;CI0.00422367965001;PU0.193921978486,0.127454014927;CI0.003472475166;PU0.207339403984,0.104214352258;CI0.003472475166;PU0.171259982348,0.0988769969098;CI0.00196916593115;PU0.19466589382,0.134252557911;CI0.00136664734549;PU0.213599072584,0.101459330343;CI0.00136664734549;PU0.194202754186,0.236438407807;CI0.0124575363123;PU0.206393761187,0.180587960242;CI0.00564961007418;PU0.250288776208,0.198735083194;CI0.00839304851301;PU0.176805127242,0.249890024101;CI0.00753390302685;PU0.193180566749,0.219128502807;CI0.00288252361456;PU0.21233778446,0.236095214689;CI0.00368074101916;PU0.164414307029,0.257206611708;CI0.00485584609357;PU0.17850526323,0.239035166353;CI0.00145328947594;PU0.187986312099,0.251405913138;CI0.0017495722531;PU0.155300953359,0.261583156581;CI0.00325391948919;PU0.148371010211,0.26439494359;CI0.00222473401407;PU0.142945903331,0.266303293117;CI0.0015262296077;PU0.219158672429,0.234447070057;CI0.00133644455743;PU0.203108390604,0.171382554054;CI0.00212449668497;PU0.201467544889,0.188418651251;CI0.00160173192024;PU0.215242430317,0.182488617229;CI0.00140088396493;PU0.262622925613,0.191457703413;CI0.00392796744281;PU0.245941029305,0.21112978516;CI0.00274207767448;PU0.239816069982,0.192273102987;CI0.00191283479128;PU0.268909222679,0.186600457338;CI0.00201623611927;PU0.301863044684,0.0499653147064;CI0.0124575363123;PU0.25959064178,0.0884482602496;CI0.00564961007418;PU0.297254018773,0.117388896881;CI0.00839304851301;PU0.304813672644,0.0281727196602;CI0.00753390302685;PU0.286361133499,0.057735026919;CI0.00288252361456;PU0.310633345862,0.0658423081812;CI0.00368074101916;PU0.304954613275,0.013783660779;CI0.00485584609357;PU0.296263158075,0.0350725094897;CI0.00145328947594;PU0.311717063489,0.0370979652727;CI0.0017495722531;PU0.304188135481,0.00370299255068;CI0.00325391948919;PU0.303158242886,-0.00370440776689;CI0.00222473401407;PU0.302098368616,-0.009356862907;CI0.0015262296077;PU0.312616454726,0.0725734427549;CI0.00133644455743;PU0.249975840879,0.0902057489577;CI0.00212449668497;PU0.263909110975,0.0802666862866;CI0.00160173192024;PU0.26566099358,0.095161104012;CI0.00140088396493;PU0.297118697712,0.13170927349;CI0.00392796744281;PU0.305814272096,0.107426286631;CI0.00274207767448;PU0.286421426642,0.111550257346;CI0.00191283479128;PU0.296055347752,0.139581989483;CI0.00201623611927;PU0.00705990562715,0.111394015424;CI0.0106175117966;PU-0.0186129784736,0.208393744031;CI0.0227225956947;PU-0.0897807655578,0.0851275209394;CI0.0227225956947;PU0.0216448052499,0.1029734197;CI0.00422367965001;PU0.00607802151396,0.127454014927;CI0.003472475166;PU-0.00733940398404,0.104214352258;CI0.003472475166;PU0.0287400176525,0.0988769969098;CI0.00196916593115;PU0.00533410618031,0.134252557911;CI0.00136664734549;PU-0.0135990725836,0.101459330343;CI0.00136664734549;PU0.00579724581403,0.236438407807;CI0.0124575363123;PU-0.00639376118687,0.180587960242;CI0.00564961007418;PU-0.0502887762082,0.198735083194;CI0.00839304851301;PU0.0231948727584,0.249890024101;CI0.00753390302685;PU0.0068194332506,0.219128502807;CI0.00288252361456;PU-0.0123377844599,0.236095214689;CI0.00368074101916;PU0.0355856929707,0.257206611708;CI0.00485584609357;PU0.0214947367701,0.239035166353;CI0.00145328947594;PU0.0120136879008,0.251405913138;CI0.0017495722531;PU0.0446990466405,0.261583156581;CI0.00325391948919;PU0.051628989789,0.26439494359;CI0.00222473401407;PU0.057054096669,0.266303293117;CI0.0015262296077;PU-0.0191586724291,0.234447070057;CI0.00133644455743;PU-0.003108390604,0.171382554054;CI0.00212449668497;PU-0.00146754488923,0.188418651251;CI0.00160173192024;PU-0.0152424303166,0.182488617229;CI0.00140088396493;PU-0.0626229256127,0.191457703413;CI0.00392796744281;PU-0.0459410293046,0.21112978516;CI0.00274207767448;PU-0.0398160699816,0.192273102987;CI0.00191283479128;PU-0.068909222679,0.186600457338;CI0.00201623611927;PU-0.101863044684,0.0499653147064;CI0.0124575363123;PU-0.0595906417803,0.0884482602496;CI0.00564961007418;PU-0.0972540187732,0.117388896881;CI0.00839304851301;PU-0.104813672644,0.0281727196602;CI0.00753390302685;PU-0.0863611334988,0.057735026919;CI0.00288252361456;PU-0.110633345862,0.0658423081812;CI0.00368074101916;PU-0.104954613275,0.013783660779;CI0.00485584609357;PU-0.0962631580748,0.0350725094897;CI0.00145328947594;PU-0.111717063489,0.0370979652727;CI0.0017495722531;PU-0.104188135481,0.00370299255068;CI0.00325391948919;PU-0.103158242886,-0.00370440776689;CI0.00222473401407;PU-0.102098368616,-0.009356862907;CI0.0015262296077;PU-0.112616454726,0.0725734427549;CI0.00133644455743;PU-0.0499758408785,0.0902057489577;CI0.00212449668497;PU-0.0639091109749,0.0802666862866;CI0.00160173192024;PU-0.0656609935802,0.095161104012;CI0.00140088396493;PU-0.0971186977124,0.13170927349;CI0.00392796744281;PU-0.105814272096,0.107426286631;CI0.00274207767448;PU-0.0864214266422,0.111550257346;CI0.00191283479128;PU-0.0960553477524,0.139581989483;CI0.00201623611927;PU0.1,-0.0495829500904;CI0.0106175117966;PU0.171167787084,-0.120316184214;CI0.0227225956947;PU0.0288322129158,-0.120316184214;CI0.0227225956947;PU0.1,-0.0327417586438;CI0.00422367965001;PU0.113417425498,-0.0584632864276;CI0.003472475166;PU0.086582574502,-0.0584632864276;CI0.003472475166;PU0.1,-0.0245489130626;CI0.00196916593115;PU0.118933178764,-0.0625068074968;CI0.00136664734549;PU0.0810668212361,-0.0625068074968;CI0.00136664734549;PU0.207660290498,-0.113198641757;CI0.0124575363123;PU0.153196880593,-0.0958311397344;CI0.00564961007418;PU0.146965242565,-0.142918899318;CI0.00839304851301;PU0.228008545403,-0.104857663004;CI0.00753390302685;PU0.193180566749,-0.103658448969;CI0.00288252361456;PU0.198295561402,-0.128732442113;CI0.00368074101916;PU0.240540306246,-0.0977851917301;CI0.00485584609357;PU0.217757894845,-0.100902595086;CI0.00145328947594;PU0.22373075139,-0.115298797654;CI0.0017495722531;PU0.248887182122,-0.0920810683749;CI0.00325391948919;PU0.254787232675,-0.0874854550658;CI0.00222473401407;PU0.259152465285,-0.0837413494532;CI0.0015262296077;PU0.193457782297,-0.133815432055;CI0.00133644455743;PU0.146867450275,-0.0883832222551;CI0.00212449668497;PU0.162441566086,-0.0954802567808;CI0.00160173192024;PU0.150418563264,-0.104444640484;CI0.00140088396493;PU0.1344957721,-0.149961896146;CI0.00392796744281;PU0.159873242792,-0.145350991034;CI0.00274207767448;PU0.146605356661,-0.130618279577;CI0.00191283479128;PU0.127146125073,-0.152977366064;CI0.00201623611927;PU-0.00766029049825,-0.113198641757;CI0.0124575363123;PU0.0468031194066,-0.0958311397344;CI0.00564961007418;PU0.0530347574349,-0.142918899318;CI0.00839304851301;PU-0.0280085454027,-0.104857663004;CI0.00753390302685;PU0.0068194332506,-0.103658448969;CI0.00288252361456;PU0.0017044385976,-0.128732442113;CI0.00368074101916;PU-0.0405403062457,-0.0977851917301;CI0.00485584609357;PU-0.0177578948449,-0.100902595086;CI0.00145328947594;PU-0.0237307513895,-0.115298797654;CI0.0017495722531;PU-0.0488871821216,-0.0920810683749;CI0.00325391948919;PU-0.0547872326752,-0.0874854550658;CI0.00222473401407;PU-0.0591524652853,-0.0837413494532;CI0.0015262296077;PU0.0065422177027,-0.133815432055;CI0.00133644455743;PU0.0531325497255,-0.0883832222551;CI0.00212449668497;PU0.0375584339143,-0.0954802567808;CI0.00160173192024;PU0.0495814367365,-0.104444640484;CI0.00140088396493;PU0.0655042279003,-0.149961896146;CI0.00392796744281;PU0.0401267572084,-0.145350991034;CI0.00274207767448;PU0.0533946433395,-0.130618279577;CI0.00191283479128;PU0.0728538749266,-0.152977366064;CI0.00201623611927;
\ No newline at end of file
diff --git a/hpgl/neos.hpgl b/hpgl/neos.hpgl
deleted file mode 100755
index d79eafe..0000000
--- a/hpgl/neos.hpgl
+++ /dev/null
@@ -1 +0,0 @@
-IN;SP1;PU0,0;PD0,90;PU1221,724;PD1216,722,1212,718,1211,713,1178,711,1178,710,1144,705,1145,705,1112,697,1112,696,1080,685,1081,684,1045,669,1046,668,1012,650,1012,649,980,628,981,627,951,604,951,603,922,575,896,544,872,511,873,511,851,477,852,476,841,455,830,429,831,429,811,376,811,375,791,313,796,313,801,315,804,320,804,323,1454,323,1453,328,1449,331,1447,332,1461,386,1460,386,1470,433,1473,456,1472,456,1473,476,1472,476,1471,512,1470,512,1465,549,1464,548,1455,583,1453,583,1447,599,1446,599,1438,615,1436,614,1417,640,1416,639,1392,662,1391,661,1364,680,1363,679,1334,695,1334,694,1305,705,1304,704,1274,711,1274,710,1242,714,1242,713,1211,714,1211,713,1178,711,1178,710,1171,710;PU1179,574;PD1181,569,1185,566,1191,566,1195,568,1198,573,1199,575,1219,574,1219,572,1228,570,1228,568,1237,564,1235,561,1248,551,1245,549,1254,535,1252,534,1260,511,1258,510,1261,485,1259,485,1257,467,1256,467,1251,447,1244,424,1240,427,1237,432,1237,434,1045,434,1046,439,1050,443,1055,444,1057,443,1064,464,1078,498,1079,497,1094,519,1095,518,1112,538,1113,537,1131,556,1132,555,1154,570,1155,568,1176,576,1176,574,1198,577,1199,575,1219,574,1219,572,1228,570,1228,568,1236,564;PU1333,121;PD1329,117,1324,115,1319,116,1316,119,1273,85,1273,86,1227,57,1226,58,1178,34,1178,35,1153,25,1152,26,1127,18,1126,19,1100,13,1100,14,1074,10,1074,11,1020,9,1020,10,972,14,972,15,949,18,949,19,926,26,903,34,904,35,882,45,882,46,861,58,862,59,844,74,845,75,825,97,826,98,810,122,811,123,798,149,799,149,789,176,790,177,786,194,787,194,785,215,786,215,784,258,785,258,787,307,792,305,796,301,797,297,1026,297,1024,292,1020,288,1015,287,1014,287,1010,266,1011,266,1008,247,1010,247,1010,230,1012,231,1017,206,1019,207,1029,184,1031,185,1046,167,1047,168,1056,161,1057,162,1066,156,1067,157,1078,153,1078,154,1089,152,1089,153,1112,152,1112,154,1136,158,1135,159,1158,167,1158,168,1181,178,1181,179,1202,193,1201,194,1223,213,1222,214,1241,236,1240,236,1256,260,1265,275,1268,271,1269,265,1268,262,1399,197,1395,193,1390,191,1385,193,1383,193,1360,164,1359,164,1338,139,1338,140,1317,118,1316,119,1285,94;PU764,537;PD762,542,763,548,766,552,771,554,773,554,778,600,777,600,776,622,774,622,770,644,768,644,761,659,759,659,750,673,748,672,737,685,736,684,722,695,721,693,701,704,701,702,679,710,679,709,657,713,656,712,634,715,634,714,609,714,609,713,584,710,585,709,560,704,560,703,537,696,537,695,495,677,495,676,450,651,451,651,401,620,399,625,401,631,404,634,410,635,412,635,431,701,425,701,421,698,418,694,418,692,189,692,191,686,194,683,196,682,91,313,97,313,101,316,104,320,104,323,333,323,331,328,328,331,325,332,341,389,357,437,374,480,375,480,389,505,390,505,407,528,409,526,429,544,430,542,454,554,455,552,474,557,474,555,493,555,493,554,511,553,511,551,519,549,518,547,526,543,524,540,533,529,530,527,536,514,533,513,534,500,532,500,531,488,530,488,526,462,525,462,515,418,514,418,500,369,482,313,487,313,492,315,495,320,495,323,724,323,722,328,718,331,717,332,742,414,761,487,769,522,768,522,774,554,773,554,777,593;PU317,307;PD311,306,307,303,306,298,307,292,310,288,313,287,236,18,231,21,229,26,229,28,0,28,1,33,5,37,10,38,13,37,89,307,94,304,96,299,97,297,326,297,324,292,320,288,315,287,313,287,302,249;PU398,18;PD403,18,408,21,411,25,410,31,407,35,404,37,480,307,485,304,487,299,488,297,716,297,715,292,711,288,706,287,704,287,627,18,622,21,620,26,620,28,391,28,392,33,396,37,401,38,404,37,415,76;PU1590,513;PD1593,511,1614,543,1615,543,1639,573,1640,573,1666,601,1667,600,1696,626,1696,625,1725,647,1725,646,1756,666,1756,665,1789,682,1789,681,1822,695,1823,694,1858,704,1894,711,1894,710,1931,714,1931,713,1967,714,1967,713,2002,711,2037,706,2037,705,2070,697,2070,695,2102,683,2101,681,2126,667,2125,666,2148,649,2147,648,2167,628,2166,626,2182,604,2181,603,2194,573,2193,572,2202,540,2200,540,2205,507,2204,506,2205,473,2204,473,2203,451,2202,451,2198,425,2186,373,2169,313,2164,316,2162,320,2162,323,1933,323,1934,328,1938,331,1943,333,1945,332,1960,384,1959,385,1970,431,1969,431,1976,473,1974,473,1975,500,1974,500,1973,513,1971,513,1968,526,1966,525,1958,543,1956,542,1950,549,1949,548,1941,554,1940,552,1931,556,1930,554,1921,556,1920,555,1900,555,1900,554,1875,551,1875,548,1851,540,1852,538,1840,531,1841,530,1830,521,1831,520,1813,500,1814,499,1804,485,1805,484,1797,469,1798,469,1784,437,1756,360,1740,313,1736,316,1734,321,1734,323,1505,323,1506,328,1510,331,1515,333,1518,332,1541,401,1542,401,1565,461,1566,461,1579,488,1592,512,1593,511,1614,543,1615,543,1616,544;PU2102,187;PD2097,189,2092,188,2087,185,2086,180,2087,175,2089,171,2068,146,2068,147,2046,123,2045,123,2021,101,2021,102,1995,82,1995,83,1966,64,1965,65,1935,49,1935,50,1903,36,1903,37,1871,25,1871,26,1840,18,1840,19,1808,13,1776,10,1776,11,1745,9,1745,10,1714,11,1714,12,1684,15,1684,16,1654,22,1654,23,1625,32,1626,33,1604,42,1605,43,1584,54,1585,55,1566,69,1567,70,1550,86,1551,87,1534,109,1536,110,1522,134,1523,135,1512,161,1513,161,1505,189,1507,189,1503,223,1504,224,1504,262,1505,262,1508,307,1513,305,1516,301,1517,297,1746,297,1745,292,1741,288,1736,287,1735,287,1731,268,1732,268,1729,236,1730,236,1732,211,1733,211,1735,198,1736,198,1740,186,1742,187,1751,170,1753,171,1766,157,1768,160,1785,151,1786,154,1805,151,1805,153,1817,154,1816,155,1827,158,1827,159,1848,167,1848,169,1867,181,1866,183,1883,198,1881,199,1899,223,1898,223,1913,249,1912,249,1930,284,1930,285,1940,306,1944,303,1946,298,1946,297,2174,297,2173,292,2169,288,2164,287,2160,288,2136,243,2135,243,2113,204,2090,171,2089,171,2068,146,2068,147,2063,141;PU2803,655;PD2800,660,2800,665,2801,668,2783,680,2782,679,2762,689,2761,688,2719,702,2718,701,2689,708,2659,712,2628,714,2628,713,2598,714,2598,713,2572,712,2572,711,2546,707,2546,706,2496,694,2496,693,2450,675,2450,674,2406,650,2407,649,2367,620,2368,619,2331,585,2332,584,2306,553,2307,552,2295,535,2296,534,2287,516,2279,496,2280,496,2273,476,2274,476,2269,455,2271,454,2269,433,2270,433,2271,415,2272,415,2274,397,2276,397,2281,380,2282,380,2290,364,2292,365,2307,348,2308,349,2328,333,2328,334,2352,317,2354,322,2354,323,2801,323,2800,328,2796,331,2791,333,2788,332,2780,351,2772,368,2771,367,2763,381,2761,380,2750,393,2749,392,2736,404,2735,403,2706,422,2705,420,2683,430,2683,429,2660,436,2660,435,2612,444,2564,454,2564,455,2541,462,2542,464,2520,474,2521,475,2502,487,2503,489,2495,496,2497,498,2492,507,2495,508,2493,518,2496,518,2497,529,2499,528,2501,538,2503,538,2507,547,2509,546,2516,555,2518,554,2527,562,2528,560,2549,572,2550,570,2564,575,2564,574,2578,576,2579,575,2608,576,2608,575,2646,571,2645,569,2664,564,2663,563,2680,556,2679,554,2697,541,2696,540,2714,524,2713,523,2732,503,2735,507,2735,512,2734,515,2875,595,2871,599,2866,600,2861,599,2841,628,2841,627,2822,651,2821,650,2802,670,2801,668,2783,680,2782,679,2766,687;PU2769,229;PD2768,224,2770,219,2773,216,2755,181,2754,182,2731,148,2731,149,2705,119,2704,119,2675,91,2675,92,2649,72,2649,73,2622,56,2621,56,2592,42,2562,30,2562,31,2528,21,2527,22,2492,15,2457,11,2457,12,2421,9,2421,10,2372,10,2373,11,2324,18,2324,19,2284,31,2285,32,2247,49,2247,50,2212,70,2213,71,2197,83,2198,83,2183,97,2185,98,2172,115,2173,116,2162,137,2150,161,2156,162,2161,161,2163,157,2316,245,2318,240,2316,235,2314,232,2344,196,2356,182,2357,183,2370,171,2371,172,2388,161,2389,162,2408,154,2409,156,2432,151,2432,153,2455,152,2455,153,2486,155,2485,156,2500,158,2500,160,2514,164,2514,166,2537,177,2536,179,2546,187,2545,188,2553,197,2552,199,2564,218,2561,220,2565,231,2562,231,2562,242,2558,241,2555,250,2553,248,2547,256,2545,254,2531,266,2529,264,2515,271,2514,270,2498,274,2465,281,2465,282,2404,300,2406,304,2411,307,2416,306,2421,303,2423,299,2423,297,2802,297,2801,292,2797,288,2792,287,2791,287,2788,259,2787,260,2783,236,2781,236,2775,216,2773,216,2755,181,2754,182,2754,181;SP0;PU0,0;IN;
diff --git a/hpgl/tec.hpgl b/hpgl/tec.hpgl
deleted file mode 100755
index a38b89a..0000000
--- a/hpgl/tec.hpgl
+++ /dev/null
@@ -1 +0,0 @@
-IN;SP1;PU0,0;PD0,90;PU736,445;PD739,444,745,465,746,465,759,499,761,498,776,520,777,519,794,539,794,538,813,557,814,556,836,571,837,569,858,577,858,575,880,578,880,576,901,575,900,573,910,571,909,569,919,565,917,562,929,552,927,550,936,536,934,535,942,512,940,511,943,486,940,486,938,468,937,468,933,448,932,448,926,425,921,428,919,433,919,435,726,435,728,440,732,444,737,445,739,444,745,465,746,465,753,482;PU945,276;PD940,277,935,275,932,270,931,265,934,260,936,259,927,244,910,221,909,222,890,200,889,201,868,182,867,183,845,170,845,171,822,161,821,162,798,154,798,156,774,152,774,154,751,156,751,157,740,160,741,162,731,166,731,167,722,174,723,175,714,182,715,184,701,202,703,203,692,226,694,227,689,251,691,251,692,276,693,276,696,303,697,303,703,333,707,331,710,327,711,324,1136,323,1134,329,1131,332,1128,333,1143,387,1142,387,1152,434,1151,434,1154,457,1155,477,1154,477,1152,513,1151,513,1147,550,1146,549,1136,584,1135,584,1129,600,1128,600,1119,616,1118,615,1099,641,1097,640,1073,663,1072,662,1045,681,1045,680,1016,696,1015,695,986,706,986,705,956,712,955,711,924,715,924,714,893,715,893,714,859,712,859,711,826,706,794,698,794,697,762,686,762,685,727,670,727,669,694,651,694,650,662,629,662,628,632,605,633,604,604,576,577,545,578,545,554,512,533,478,533,477,513,439,514,438,496,398,497,398,483,356,484,356,473,314,474,314,468,275,469,275,465,235,466,235,467,196,469,196,476,158,477,158,487,131,488,132,501,106,503,106,519,82,520,83,540,62,541,63,560,48,560,49,581,37,582,38,604,28,604,29,626,21,627,21,650,15,650,16,674,12,674,13,722,10,722,11,775,13,775,14,802,18,828,24,827,25,853,33,878,43,878,44,926,68,925,69,971,98,971,99,1013,133,1012,134,1033,155,1054,180,1054,181,1078,210,1073,212,1067,211,1063,208,1062,207,932,272,931,266,933,261,936,259,927,244,913,226;PU1796,241;PD1796,241,1769,197,1768,197,1743,161,1742,161,1717,130,1716,131,1692,107,1691,107,1665,85,1665,86,1637,65,1637,66,1608,48,1608,49,1586,38,1586,39,1564,30,1564,31,1518,18,1517,19,1468,11,1468,12,1418,10,1418,11,1363,15,1363,16,1335,20,1336,22,1309,29,1309,30,1289,39,1289,40,1269,50,1270,51,1251,64,1252,65,1235,80,1237,81,1220,102,1221,103,1207,127,1208,127,1197,153,1198,153,1190,179,1191,179,1188,197,1189,197,1187,217,1188,217,1187,259,1188,259,1190,308,1195,306,1198,302,1199,298,1428,298,1427,293,1423,289,1418,288,1416,288,1413,270,1414,270,1410,240,1412,240,1414,213,1415,213,1418,200,1420,201,1424,188,1426,189,1438,171,1440,173,1456,159,1458,161,1477,153,1478,155,1499,152,1499,155,1519,157,1518,159,1538,165,1537,166,1561,179,1560,180,1581,196,1580,198,1600,220,1599,221,1617,246,1616,246,1643,291,1647,287,1648,282,1648,281,1812,247,1809,242,1805,239,1799,239,1796,241,1775,207;PU1636,431;PD1632,435,1631,441,1633,446,1637,449,1642,450,1644,468,1643,468,1644,498,1643,498,1642,519,1641,519,1639,529,1638,529,1634,538,1632,537,1623,549,1621,547,1609,555,1608,553,1594,558,1593,555,1578,557,1578,555,1557,553,1558,551,1538,545,1539,542,1527,535,1528,534,1517,525,1518,524,1500,503,1501,502,1490,485,1480,467,1481,466,1463,429,1464,428,1437,357,1422,314,1418,317,1416,322,1415,324,1187,324,1188,329,1192,332,1197,334,1200,333,1223,399,1224,399,1247,455,1260,482,1260,481,1273,504,1274,504,1295,535,1319,565,1320,564,1346,593,1346,592,1374,618,1375,618,1401,639,1402,639,1430,659,1430,658,1460,676,1460,675,1492,689,1492,688,1528,701,1529,700,1566,709,1566,708,1605,714,1605,713,1643,715,1667,714,1667,713,1691,711,1691,710,1714,705,1714,704,1737,698,1737,697,1756,690,1756,689,1775,680,1775,679,1793,668,1792,667,1808,654,1807,653,1824,635,1823,635,1837,615,1836,614,1847,593,1846,592,1855,570,1854,569,1857,554,1856,554,1859,536,1858,536,1860,499,1859,499,1858,455,1853,457,1849,461,1848,464,1631,439,1632,444,1636,448,1641,450,1642,450,1644,468,1643,468,1644,490;PU203,21;PD198,19,194,16,193,11,127,10,127,12,95,15,95,17,79,20,80,21,65,27,65,28,49,37,50,38,35,50,36,51,23,64,24,65,14,81,15,82,10,95,12,96,9,110,11,110,10,139,12,139,18,167,19,167,24,184,23,184,124,535,118,535,114,533,111,528,111,526,17,526,18,531,22,535,27,536,29,535,77,702,81,699,84,695,84,693,178,693,177,698,173,701,172,702,236,857,241,854,243,849,243,848,452,848,450,843,446,839,441,838,439,838,395,683,400,683,404,686,407,690,407,693,550,693,549,687,545,684,540,683,538,683,490,516,485,519,483,524,483,526,340,526,341,521,345,517,347,516,282,288,282,289,273,262,273,261,267,238,268,237,265,216,266,215,267,203,269,203,273,191,276,192,288,178,290,180,306,170,307,173,330,168,330,170,354,170,354,171,403,175,402,170,398,166,393,164,390,165,348,19,344,22,341,27,286,18,286,19,237,13,193,10,193,11,153,11;SP0;PU0,0;IN;
diff --git a/janos.hpgl~ b/janos.hpgl~
deleted file mode 100755
index c763787..0000000
--- a/janos.hpgl~
+++ /dev/null
@@ -1,326 +0,0 @@
-##sK1 1 2
-document()
-layout('A4',(595.276,841.89),0)
-grid((0,0,2.83465,2.83465),0,("RGB",0.0,0.0,1.0),'Gitter')
-page('','A4',(595.276,841.89),0)
-layer('PLT_objects',1,1,0,0,("RGB",0.196,0.314,0.635))
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(172.984,382.535,0)
-bs(173.693,381.827,0)
-bs(173.976,381.827,0)
-bs(174.543,382.039,0)
-bs(174.969,381.898,0)
-bs(175.11,381.26,0)
-bs(175.11,376.299,0)
-bs(175.323,376.087,0)
-bs(176.669,376.087,0)
-bs(176.811,376.299,0)
-bs(176.811,381.26,0)
-bs(176.669,382.252,0)
-bs(176.173,382.961,0)
-bs(175.465,383.457,0)
-bs(174.543,383.598,0)
-bs(173.48,383.315,0)
-bs(172.913,382.819,0)
-bs(172.984,382.535,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(180.709,382.535,0)
-bs(181.063,382.394,0)
-bs(181.205,382.11,0)
-bs(181.063,381.756,0)
-bs(180.709,381.614,0)
-bs(180.425,381.756,0)
-bs(180.283,382.11,0)
-bs(180.425,382.394,0)
-bs(180.709,382.535,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(179.929,378,0)
-bs(179.646,377.504,0)
-bs(179.717,377.291,0)
-bs(181.559,376.228,0)
-bs(181.843,376.228,0)
-bs(182.197,376.866,0)
-bs(182.126,377.22,0)
-bs(180.213,378.071,0)
-bs(179.929,378,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(180.496,380.764,0)
-bs(181.276,380.976,0)
-bs(181.205,380.48,0)
-bs(180.709,380.339,0)
-bs(179.646,380.48,0)
-bs(179.362,380.268,0)
-bs(179.291,379.559,0)
-bs(179.433,379.276,0)
-bs(180.85,379.134,0)
-bs(181.701,379.276,0)
-bs(182.268,379.559,0)
-bs(182.551,380.126,0)
-bs(182.693,380.976,0)
-bs(182.693,383.315,0)
-bs(182.48,383.528,0)
-bs(181.984,383.528,0)
-bs(181.772,383.386,0)
-bs(181.63,383.102,0)
-bs(181.205,383.386,0)
-bs(180.354,383.598,0)
-bs(179.291,383.244,0)
-bs(178.937,382.181,0)
-bs(179.291,381.189,0)
-bs(179.787,380.906,0)
-bs(180.496,380.764,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(184.819,379.488,0)
-bs(185.031,379.276,0)
-bs(185.528,379.276,0)
-bs(185.669,379.346,0)
-bs(185.882,379.772,0)
-bs(186.378,379.346,0)
-bs(187.37,379.134,0)
-bs(188.22,379.346,0)
-bs(188.858,379.772,0)
-bs(189.213,380.48,0)
-bs(189.354,381.331,0)
-bs(189.354,383.315,0)
-bs(189.142,383.528,0)
-bs(188.008,383.528,0)
-bs(187.866,383.315,0)
-bs(187.866,381.331,0)
-bs(187.654,380.764,0)
-bs(187.087,380.551,0)
-bs(186.52,380.693,0)
-bs(186.307,381.26,0)
-bs(186.307,383.315,0)
-bs(186.094,383.528,0)
-bs(185.031,383.528,0)
-bs(184.819,383.315,0)
-bs(184.819,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(193.323,382.252,0)
-bs(193.961,381.969,0)
-bs(194.173,381.331,0)
-bs(193.961,380.764,0)
-bs(193.323,380.48,0)
-bs(192.756,380.764,0)
-bs(192.543,381.331,0)
-bs(192.756,381.969,0)
-bs(193.323,382.252,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(193.323,379.134,0)
-bs(194.173,379.346,0)
-bs(194.882,379.772,0)
-bs(195.378,380.48,0)
-bs(195.591,381.331,0)
-bs(195.378,382.252,0)
-bs(194.882,382.961,0)
-bs(194.173,383.457,0)
-bs(193.323,383.598,0)
-bs(192.472,383.457,0)
-bs(191.764,382.961,0)
-bs(191.339,382.252,0)
-bs(191.126,381.331,0)
-bs(191.339,380.48,0)
-bs(191.764,379.772,0)
-bs(192.472,379.346,0)
-bs(193.323,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(197.22,383.031,0)
-bs(197.575,382.323,0)
-bs(197.858,382.181,0)
-bs(198.78,382.465,0)
-bs(198.992,382.323,0)
-bs(198.85,382.11,0)
-bs(198.354,381.827,0)
-bs(197.504,381.26,0)
-bs(197.22,380.409,0)
-bs(197.575,379.488,0)
-bs(198.071,379.276,0)
-bs(198.85,379.134,0)
-bs(200.268,379.488,0)
-bs(200.339,379.772,0)
-bs(199.984,380.48,0)
-bs(199.772,380.551,0)
-bs(198.85,380.268,0)
-bs(198.638,380.409,0)
-bs(199.063,380.764,0)
-bs(200.126,381.331,0)
-bs(200.409,381.685,0)
-bs(200.551,382.252,0)
-bs(200.409,382.748,0)
-bs(200.126,383.173,0)
-bs(199.559,383.528,0)
-bs(198.78,383.598,0)
-bs(197.858,383.457,0)
-bs(197.291,383.244,0)
-bs(197.22,383.031,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(208.843,381.969,0)
-bs(209.339,381.756,0)
-bs(209.551,381.189,0)
-bs(209.268,380.693,0)
-bs(208.701,380.48,0)
-bs(207.85,380.48,0)
-bs(207.85,381.969,0)
-bs(208.843,381.969,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(208.701,379.063,0)
-bs(209.197,378.85,0)
-bs(209.409,378.354,0)
-bs(209.197,377.787,0)
-bs(208.701,377.575,0)
-bs(207.85,377.575,0)
-bs(207.85,379.063,0)
-bs(208.701,379.063,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(206.22,376.299,0)
-bs(206.362,376.087,0)
-bs(208.843,376.087,0)
-bs(209.764,376.228,0)
-bs(210.472,376.654,0)
-bs(210.969,377.291,0)
-bs(211.11,378.071,0)
-bs(210.685,379.063,0)
-bs(209.906,379.701,0)
-bs(210.827,380.339,0)
-bs(211.181,380.835,0)
-bs(211.323,381.472,0)
-bs(211.181,382.252,0)
-bs(210.685,382.89,0)
-bs(209.906,383.315,0)
-bs(209.055,383.528,0)
-bs(206.362,383.528,0)
-bs(206.22,383.315,0)
-bs(206.22,376.299,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(213.378,379.488,0)
-bs(213.52,379.276,0)
-bs(214.654,379.276,0)
-bs(214.866,379.488,0)
-bs(214.866,381.402,0)
-bs(215.079,381.969,0)
-bs(215.575,382.252,0)
-bs(216,381.969,0)
-bs(216.213,381.472,0)
-bs(216.213,379.488,0)
-bs(216.425,379.276,0)
-bs(217.488,379.276,0)
-bs(217.701,379.488,0)
-bs(217.701,383.315,0)
-bs(217.488,383.528,0)
-bs(216.992,383.528,0)
-bs(216.78,383.315,0)
-bs(216.638,382.961,0)
-bs(216.142,383.386,0)
-bs(215.22,383.598,0)
-bs(214.37,383.457,0)
-bs(213.803,382.961,0)
-bs(213.449,382.252,0)
-bs(213.378,381.402,0)
-bs(213.378,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(221.882,379.134,0)
-bs(222.803,379.346,0)
-bs(223.512,379.913,0)
-bs(223.441,380.197,0)
-bs(222.803,380.835,0)
-bs(222.591,380.764,0)
-bs(221.953,380.48,0)
-bs(221.315,380.764,0)
-bs(221.102,381.402,0)
-bs(221.315,381.969,0)
-bs(221.953,382.252,0)
-bs(222.661,381.898,0)
-bs(222.874,381.827,0)
-bs(223.512,382.394,0)
-bs(223.583,382.677,0)
-bs(222.874,383.386,0)
-bs(221.882,383.598,0)
-bs(221.031,383.457,0)
-bs(220.252,382.961,0)
-bs(219.756,382.252,0)
-bs(219.614,381.402,0)
-bs(219.756,380.48,0)
-bs(220.323,379.772,0)
-bs(221.031,379.346,0)
-bs(221.882,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(225.425,376.299,0)
-bs(225.638,376.087,0)
-bs(226.772,376.087,0)
-bs(226.984,376.299,0)
-bs(226.984,380.835,0)
-bs(228.26,379.346,0)
-bs(228.543,379.276,0)
-bs(229.748,379.276,0)
-bs(229.89,379.346,0)
-bs(229.89,379.559,0)
-bs(228.472,381.189,0)
-bs(230.173,383.173,0)
-bs(230.244,383.386,0)
-bs(230.031,383.528,0)
-bs(228.614,383.528,0)
-bs(228.402,383.386,0)
-bs(226.984,381.543,0)
-bs(226.984,383.315,0)
-bs(226.772,383.528,0)
-bs(225.638,383.528,0)
-bs(225.425,383.315,0)
-bs(225.425,376.299,0)
-bC()
-masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635))
-guidelayer('Hilfslinien',1,0,0,1,("RGB",0.0,0.3,1.0))
diff --git a/kanamen.sk1 b/kanamen.sk1
deleted file mode 100755
index c763787..0000000
--- a/kanamen.sk1
+++ /dev/null
@@ -1,326 +0,0 @@
-##sK1 1 2
-document()
-layout('A4',(595.276,841.89),0)
-grid((0,0,2.83465,2.83465),0,("RGB",0.0,0.0,1.0),'Gitter')
-page('','A4',(595.276,841.89),0)
-layer('PLT_objects',1,1,0,0,("RGB",0.196,0.314,0.635))
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(172.984,382.535,0)
-bs(173.693,381.827,0)
-bs(173.976,381.827,0)
-bs(174.543,382.039,0)
-bs(174.969,381.898,0)
-bs(175.11,381.26,0)
-bs(175.11,376.299,0)
-bs(175.323,376.087,0)
-bs(176.669,376.087,0)
-bs(176.811,376.299,0)
-bs(176.811,381.26,0)
-bs(176.669,382.252,0)
-bs(176.173,382.961,0)
-bs(175.465,383.457,0)
-bs(174.543,383.598,0)
-bs(173.48,383.315,0)
-bs(172.913,382.819,0)
-bs(172.984,382.535,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(180.709,382.535,0)
-bs(181.063,382.394,0)
-bs(181.205,382.11,0)
-bs(181.063,381.756,0)
-bs(180.709,381.614,0)
-bs(180.425,381.756,0)
-bs(180.283,382.11,0)
-bs(180.425,382.394,0)
-bs(180.709,382.535,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(179.929,378,0)
-bs(179.646,377.504,0)
-bs(179.717,377.291,0)
-bs(181.559,376.228,0)
-bs(181.843,376.228,0)
-bs(182.197,376.866,0)
-bs(182.126,377.22,0)
-bs(180.213,378.071,0)
-bs(179.929,378,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(180.496,380.764,0)
-bs(181.276,380.976,0)
-bs(181.205,380.48,0)
-bs(180.709,380.339,0)
-bs(179.646,380.48,0)
-bs(179.362,380.268,0)
-bs(179.291,379.559,0)
-bs(179.433,379.276,0)
-bs(180.85,379.134,0)
-bs(181.701,379.276,0)
-bs(182.268,379.559,0)
-bs(182.551,380.126,0)
-bs(182.693,380.976,0)
-bs(182.693,383.315,0)
-bs(182.48,383.528,0)
-bs(181.984,383.528,0)
-bs(181.772,383.386,0)
-bs(181.63,383.102,0)
-bs(181.205,383.386,0)
-bs(180.354,383.598,0)
-bs(179.291,383.244,0)
-bs(178.937,382.181,0)
-bs(179.291,381.189,0)
-bs(179.787,380.906,0)
-bs(180.496,380.764,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(184.819,379.488,0)
-bs(185.031,379.276,0)
-bs(185.528,379.276,0)
-bs(185.669,379.346,0)
-bs(185.882,379.772,0)
-bs(186.378,379.346,0)
-bs(187.37,379.134,0)
-bs(188.22,379.346,0)
-bs(188.858,379.772,0)
-bs(189.213,380.48,0)
-bs(189.354,381.331,0)
-bs(189.354,383.315,0)
-bs(189.142,383.528,0)
-bs(188.008,383.528,0)
-bs(187.866,383.315,0)
-bs(187.866,381.331,0)
-bs(187.654,380.764,0)
-bs(187.087,380.551,0)
-bs(186.52,380.693,0)
-bs(186.307,381.26,0)
-bs(186.307,383.315,0)
-bs(186.094,383.528,0)
-bs(185.031,383.528,0)
-bs(184.819,383.315,0)
-bs(184.819,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(193.323,382.252,0)
-bs(193.961,381.969,0)
-bs(194.173,381.331,0)
-bs(193.961,380.764,0)
-bs(193.323,380.48,0)
-bs(192.756,380.764,0)
-bs(192.543,381.331,0)
-bs(192.756,381.969,0)
-bs(193.323,382.252,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(193.323,379.134,0)
-bs(194.173,379.346,0)
-bs(194.882,379.772,0)
-bs(195.378,380.48,0)
-bs(195.591,381.331,0)
-bs(195.378,382.252,0)
-bs(194.882,382.961,0)
-bs(194.173,383.457,0)
-bs(193.323,383.598,0)
-bs(192.472,383.457,0)
-bs(191.764,382.961,0)
-bs(191.339,382.252,0)
-bs(191.126,381.331,0)
-bs(191.339,380.48,0)
-bs(191.764,379.772,0)
-bs(192.472,379.346,0)
-bs(193.323,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(197.22,383.031,0)
-bs(197.575,382.323,0)
-bs(197.858,382.181,0)
-bs(198.78,382.465,0)
-bs(198.992,382.323,0)
-bs(198.85,382.11,0)
-bs(198.354,381.827,0)
-bs(197.504,381.26,0)
-bs(197.22,380.409,0)
-bs(197.575,379.488,0)
-bs(198.071,379.276,0)
-bs(198.85,379.134,0)
-bs(200.268,379.488,0)
-bs(200.339,379.772,0)
-bs(199.984,380.48,0)
-bs(199.772,380.551,0)
-bs(198.85,380.268,0)
-bs(198.638,380.409,0)
-bs(199.063,380.764,0)
-bs(200.126,381.331,0)
-bs(200.409,381.685,0)
-bs(200.551,382.252,0)
-bs(200.409,382.748,0)
-bs(200.126,383.173,0)
-bs(199.559,383.528,0)
-bs(198.78,383.598,0)
-bs(197.858,383.457,0)
-bs(197.291,383.244,0)
-bs(197.22,383.031,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(208.843,381.969,0)
-bs(209.339,381.756,0)
-bs(209.551,381.189,0)
-bs(209.268,380.693,0)
-bs(208.701,380.48,0)
-bs(207.85,380.48,0)
-bs(207.85,381.969,0)
-bs(208.843,381.969,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(208.701,379.063,0)
-bs(209.197,378.85,0)
-bs(209.409,378.354,0)
-bs(209.197,377.787,0)
-bs(208.701,377.575,0)
-bs(207.85,377.575,0)
-bs(207.85,379.063,0)
-bs(208.701,379.063,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(206.22,376.299,0)
-bs(206.362,376.087,0)
-bs(208.843,376.087,0)
-bs(209.764,376.228,0)
-bs(210.472,376.654,0)
-bs(210.969,377.291,0)
-bs(211.11,378.071,0)
-bs(210.685,379.063,0)
-bs(209.906,379.701,0)
-bs(210.827,380.339,0)
-bs(211.181,380.835,0)
-bs(211.323,381.472,0)
-bs(211.181,382.252,0)
-bs(210.685,382.89,0)
-bs(209.906,383.315,0)
-bs(209.055,383.528,0)
-bs(206.362,383.528,0)
-bs(206.22,383.315,0)
-bs(206.22,376.299,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(213.378,379.488,0)
-bs(213.52,379.276,0)
-bs(214.654,379.276,0)
-bs(214.866,379.488,0)
-bs(214.866,381.402,0)
-bs(215.079,381.969,0)
-bs(215.575,382.252,0)
-bs(216,381.969,0)
-bs(216.213,381.472,0)
-bs(216.213,379.488,0)
-bs(216.425,379.276,0)
-bs(217.488,379.276,0)
-bs(217.701,379.488,0)
-bs(217.701,383.315,0)
-bs(217.488,383.528,0)
-bs(216.992,383.528,0)
-bs(216.78,383.315,0)
-bs(216.638,382.961,0)
-bs(216.142,383.386,0)
-bs(215.22,383.598,0)
-bs(214.37,383.457,0)
-bs(213.803,382.961,0)
-bs(213.449,382.252,0)
-bs(213.378,381.402,0)
-bs(213.378,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(221.882,379.134,0)
-bs(222.803,379.346,0)
-bs(223.512,379.913,0)
-bs(223.441,380.197,0)
-bs(222.803,380.835,0)
-bs(222.591,380.764,0)
-bs(221.953,380.48,0)
-bs(221.315,380.764,0)
-bs(221.102,381.402,0)
-bs(221.315,381.969,0)
-bs(221.953,382.252,0)
-bs(222.661,381.898,0)
-bs(222.874,381.827,0)
-bs(223.512,382.394,0)
-bs(223.583,382.677,0)
-bs(222.874,383.386,0)
-bs(221.882,383.598,0)
-bs(221.031,383.457,0)
-bs(220.252,382.961,0)
-bs(219.756,382.252,0)
-bs(219.614,381.402,0)
-bs(219.756,380.48,0)
-bs(220.323,379.772,0)
-bs(221.031,379.346,0)
-bs(221.882,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(225.425,376.299,0)
-bs(225.638,376.087,0)
-bs(226.772,376.087,0)
-bs(226.984,376.299,0)
-bs(226.984,380.835,0)
-bs(228.26,379.346,0)
-bs(228.543,379.276,0)
-bs(229.748,379.276,0)
-bs(229.89,379.346,0)
-bs(229.89,379.559,0)
-bs(228.472,381.189,0)
-bs(230.173,383.173,0)
-bs(230.244,383.386,0)
-bs(230.031,383.528,0)
-bs(228.614,383.528,0)
-bs(228.402,383.386,0)
-bs(226.984,381.543,0)
-bs(226.984,383.315,0)
-bs(226.772,383.528,0)
-bs(225.638,383.528,0)
-bs(225.425,383.315,0)
-bs(225.425,376.299,0)
-bC()
-masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635))
-guidelayer('Hilfslinien',1,0,0,1,("RGB",0.0,0.3,1.0))
diff --git a/koche.pyc b/koche.pyc
deleted file mode 100755
index c737f49..0000000
Binary files a/koche.pyc and /dev/null differ
diff --git a/m2/r0.png b/m2/r0.png
deleted file mode 100755
index a01af1e..0000000
Binary files a/m2/r0.png and /dev/null differ
diff --git a/m2/r1.png b/m2/r1.png
deleted file mode 100755
index 8946b37..0000000
Binary files a/m2/r1.png and /dev/null differ
diff --git a/m2/r10.png b/m2/r10.png
deleted file mode 100755
index 16ad4b8..0000000
Binary files a/m2/r10.png and /dev/null differ
diff --git a/m2/r11.png b/m2/r11.png
deleted file mode 100755
index eb32251..0000000
Binary files a/m2/r11.png and /dev/null differ
diff --git a/m2/r12.png b/m2/r12.png
deleted file mode 100755
index c4371fc..0000000
Binary files a/m2/r12.png and /dev/null differ
diff --git a/m2/r13.png b/m2/r13.png
deleted file mode 100755
index c2a2eb1..0000000
Binary files a/m2/r13.png and /dev/null differ
diff --git a/m2/r14.png b/m2/r14.png
deleted file mode 100755
index b939194..0000000
Binary files a/m2/r14.png and /dev/null differ
diff --git a/m2/r15.png b/m2/r15.png
deleted file mode 100755
index 2e07249..0000000
Binary files a/m2/r15.png and /dev/null differ
diff --git a/m2/r16.png b/m2/r16.png
deleted file mode 100755
index f743466..0000000
Binary files a/m2/r16.png and /dev/null differ
diff --git a/m2/r17.png b/m2/r17.png
deleted file mode 100755
index 3f988e2..0000000
Binary files a/m2/r17.png and /dev/null differ
diff --git a/m2/r18.png b/m2/r18.png
deleted file mode 100755
index 7985d56..0000000
Binary files a/m2/r18.png and /dev/null differ
diff --git a/m2/r19.png b/m2/r19.png
deleted file mode 100755
index 871c03d..0000000
Binary files a/m2/r19.png and /dev/null differ
diff --git a/m2/r2.png b/m2/r2.png
deleted file mode 100755
index 1fa5c98..0000000
Binary files a/m2/r2.png and /dev/null differ
diff --git a/m2/r20.png b/m2/r20.png
deleted file mode 100755
index 387a4ff..0000000
Binary files a/m2/r20.png and /dev/null differ
diff --git a/m2/r21.png b/m2/r21.png
deleted file mode 100755
index b7daa0f..0000000
Binary files a/m2/r21.png and /dev/null differ
diff --git a/m2/r22.png b/m2/r22.png
deleted file mode 100755
index 8113a29..0000000
Binary files a/m2/r22.png and /dev/null differ
diff --git a/m2/r23.png b/m2/r23.png
deleted file mode 100755
index af055ec..0000000
Binary files a/m2/r23.png and /dev/null differ
diff --git a/m2/r24.png b/m2/r24.png
deleted file mode 100755
index 1f2f9d3..0000000
Binary files a/m2/r24.png and /dev/null differ
diff --git a/m2/r25.png b/m2/r25.png
deleted file mode 100755
index 7e74c10..0000000
Binary files a/m2/r25.png and /dev/null differ
diff --git a/m2/r26.png b/m2/r26.png
deleted file mode 100755
index 808031f..0000000
Binary files a/m2/r26.png and /dev/null differ
diff --git a/m2/r27.png b/m2/r27.png
deleted file mode 100755
index 0488cf4..0000000
Binary files a/m2/r27.png and /dev/null differ
diff --git a/m2/r28.png b/m2/r28.png
deleted file mode 100755
index 6c39028..0000000
Binary files a/m2/r28.png and /dev/null differ
diff --git a/m2/r29.png b/m2/r29.png
deleted file mode 100755
index ead5ea7..0000000
Binary files a/m2/r29.png and /dev/null differ
diff --git a/m2/r3.png b/m2/r3.png
deleted file mode 100755
index 8ae9267..0000000
Binary files a/m2/r3.png and /dev/null differ
diff --git a/m2/r30.png b/m2/r30.png
deleted file mode 100755
index 5e4982b..0000000
Binary files a/m2/r30.png and /dev/null differ
diff --git a/m2/r31.png b/m2/r31.png
deleted file mode 100755
index 69f9e99..0000000
Binary files a/m2/r31.png and /dev/null differ
diff --git a/m2/r32.png b/m2/r32.png
deleted file mode 100755
index 317c1f4..0000000
Binary files a/m2/r32.png and /dev/null differ
diff --git a/m2/r33.png b/m2/r33.png
deleted file mode 100755
index 51f2a91..0000000
Binary files a/m2/r33.png and /dev/null differ
diff --git a/m2/r34.png b/m2/r34.png
deleted file mode 100755
index 938c79a..0000000
Binary files a/m2/r34.png and /dev/null differ
diff --git a/m2/r35.png b/m2/r35.png
deleted file mode 100755
index e0609d3..0000000
Binary files a/m2/r35.png and /dev/null differ
diff --git a/m2/r36.png b/m2/r36.png
deleted file mode 100755
index aabb3e8..0000000
Binary files a/m2/r36.png and /dev/null differ
diff --git a/m2/r37.png b/m2/r37.png
deleted file mode 100755
index 22e3f00..0000000
Binary files a/m2/r37.png and /dev/null differ
diff --git a/m2/r38.png b/m2/r38.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r38.png and /dev/null differ
diff --git a/m2/r39.png b/m2/r39.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r39.png and /dev/null differ
diff --git a/m2/r4.png b/m2/r4.png
deleted file mode 100755
index f5072a5..0000000
Binary files a/m2/r4.png and /dev/null differ
diff --git a/m2/r40.png b/m2/r40.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r40.png and /dev/null differ
diff --git a/m2/r41.png b/m2/r41.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r41.png and /dev/null differ
diff --git a/m2/r42.png b/m2/r42.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r42.png and /dev/null differ
diff --git a/m2/r43.png b/m2/r43.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r43.png and /dev/null differ
diff --git a/m2/r44.png b/m2/r44.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r44.png and /dev/null differ
diff --git a/m2/r45.png b/m2/r45.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r45.png and /dev/null differ
diff --git a/m2/r46.png b/m2/r46.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r46.png and /dev/null differ
diff --git a/m2/r47.png b/m2/r47.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r47.png and /dev/null differ
diff --git a/m2/r48.png b/m2/r48.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r48.png and /dev/null differ
diff --git a/m2/r49.png b/m2/r49.png
deleted file mode 100755
index 41091fd..0000000
Binary files a/m2/r49.png and /dev/null differ
diff --git a/m2/r5.png b/m2/r5.png
deleted file mode 100755
index 3040b2a..0000000
Binary files a/m2/r5.png and /dev/null differ
diff --git a/m2/r50.png b/m2/r50.png
deleted file mode 100755
index 5a263c3..0000000
Binary files a/m2/r50.png and /dev/null differ
diff --git a/m2/r51.png b/m2/r51.png
deleted file mode 100755
index 5a263c3..0000000
Binary files a/m2/r51.png and /dev/null differ
diff --git a/m2/r52.png b/m2/r52.png
deleted file mode 100755
index 5a263c3..0000000
Binary files a/m2/r52.png and /dev/null differ
diff --git a/m2/r53.png b/m2/r53.png
deleted file mode 100755
index 5a263c3..0000000
Binary files a/m2/r53.png and /dev/null differ
diff --git a/m2/r54.png b/m2/r54.png
deleted file mode 100755
index 5a263c3..0000000
Binary files a/m2/r54.png and /dev/null differ
diff --git a/m2/r55.png b/m2/r55.png
deleted file mode 100755
index 82b70b2..0000000
Binary files a/m2/r55.png and /dev/null differ
diff --git a/m2/r56.png b/m2/r56.png
deleted file mode 100755
index 82b70b2..0000000
Binary files a/m2/r56.png and /dev/null differ
diff --git a/m2/r57.png b/m2/r57.png
deleted file mode 100755
index 82b70b2..0000000
Binary files a/m2/r57.png and /dev/null differ
diff --git a/m2/r58.png b/m2/r58.png
deleted file mode 100755
index 1bcead5..0000000
Binary files a/m2/r58.png and /dev/null differ
diff --git a/m2/r59.png b/m2/r59.png
deleted file mode 100755
index 35e53dd..0000000
Binary files a/m2/r59.png and /dev/null differ
diff --git a/m2/r6.png b/m2/r6.png
deleted file mode 100755
index 7a1cc28..0000000
Binary files a/m2/r6.png and /dev/null differ
diff --git a/m2/r60.png b/m2/r60.png
deleted file mode 100755
index 5a6d2c5..0000000
Binary files a/m2/r60.png and /dev/null differ
diff --git a/m2/r61.png b/m2/r61.png
deleted file mode 100755
index f3c5272..0000000
Binary files a/m2/r61.png and /dev/null differ
diff --git a/m2/r62.png b/m2/r62.png
deleted file mode 100755
index 90327cc..0000000
Binary files a/m2/r62.png and /dev/null differ
diff --git a/m2/r63.png b/m2/r63.png
deleted file mode 100755
index a615948..0000000
Binary files a/m2/r63.png and /dev/null differ
diff --git a/m2/r64.png b/m2/r64.png
deleted file mode 100755
index 783c142..0000000
Binary files a/m2/r64.png and /dev/null differ
diff --git a/m2/r65.png b/m2/r65.png
deleted file mode 100755
index d623991..0000000
Binary files a/m2/r65.png and /dev/null differ
diff --git a/m2/r66.png b/m2/r66.png
deleted file mode 100755
index 0cbad58..0000000
Binary files a/m2/r66.png and /dev/null differ
diff --git a/m2/r67.png b/m2/r67.png
deleted file mode 100755
index 7e0a9e2..0000000
Binary files a/m2/r67.png and /dev/null differ
diff --git a/m2/r68.png b/m2/r68.png
deleted file mode 100755
index 65d8384..0000000
Binary files a/m2/r68.png and /dev/null differ
diff --git a/m2/r69.png b/m2/r69.png
deleted file mode 100755
index 20b8246..0000000
Binary files a/m2/r69.png and /dev/null differ
diff --git a/m2/r7.png b/m2/r7.png
deleted file mode 100755
index 59c52bc..0000000
Binary files a/m2/r7.png and /dev/null differ
diff --git a/m2/r70.png b/m2/r70.png
deleted file mode 100755
index ab27a09..0000000
Binary files a/m2/r70.png and /dev/null differ
diff --git a/m2/r71.png b/m2/r71.png
deleted file mode 100755
index 34ffe7a..0000000
Binary files a/m2/r71.png and /dev/null differ
diff --git a/m2/r72.png b/m2/r72.png
deleted file mode 100755
index 349580e..0000000
Binary files a/m2/r72.png and /dev/null differ
diff --git a/m2/r73.png b/m2/r73.png
deleted file mode 100755
index 199a30f..0000000
Binary files a/m2/r73.png and /dev/null differ
diff --git a/m2/r74.png b/m2/r74.png
deleted file mode 100755
index 05925a7..0000000
Binary files a/m2/r74.png and /dev/null differ
diff --git a/m2/r75.png b/m2/r75.png
deleted file mode 100755
index be916ba..0000000
Binary files a/m2/r75.png and /dev/null differ
diff --git a/m2/r76.png b/m2/r76.png
deleted file mode 100755
index b48001e..0000000
Binary files a/m2/r76.png and /dev/null differ
diff --git a/m2/r77.png b/m2/r77.png
deleted file mode 100755
index 3fcac19..0000000
Binary files a/m2/r77.png and /dev/null differ
diff --git a/m2/r78.png b/m2/r78.png
deleted file mode 100755
index 1d78a30..0000000
Binary files a/m2/r78.png and /dev/null differ
diff --git a/m2/r79.png b/m2/r79.png
deleted file mode 100755
index 92e6fc3..0000000
Binary files a/m2/r79.png and /dev/null differ
diff --git a/m2/r8.png b/m2/r8.png
deleted file mode 100755
index ea7d3e6..0000000
Binary files a/m2/r8.png and /dev/null differ
diff --git a/m2/r80.png b/m2/r80.png
deleted file mode 100755
index bac264e..0000000
Binary files a/m2/r80.png and /dev/null differ
diff --git a/m2/r81.png b/m2/r81.png
deleted file mode 100755
index 265ed73..0000000
Binary files a/m2/r81.png and /dev/null differ
diff --git a/m2/r82.png b/m2/r82.png
deleted file mode 100755
index 86a20ae..0000000
Binary files a/m2/r82.png and /dev/null differ
diff --git a/m2/r83.png b/m2/r83.png
deleted file mode 100755
index f5683cb..0000000
Binary files a/m2/r83.png and /dev/null differ
diff --git a/m2/r84.png b/m2/r84.png
deleted file mode 100755
index 54e73b4..0000000
Binary files a/m2/r84.png and /dev/null differ
diff --git a/m2/r85.png b/m2/r85.png
deleted file mode 100755
index eea8e31..0000000
Binary files a/m2/r85.png and /dev/null differ
diff --git a/m2/r86.png b/m2/r86.png
deleted file mode 100755
index 133f9aa..0000000
Binary files a/m2/r86.png and /dev/null differ
diff --git a/m2/r87.png b/m2/r87.png
deleted file mode 100755
index ea94bb7..0000000
Binary files a/m2/r87.png and /dev/null differ
diff --git a/m2/r88.png b/m2/r88.png
deleted file mode 100755
index 53a08dd..0000000
Binary files a/m2/r88.png and /dev/null differ
diff --git a/m2/r89.png b/m2/r89.png
deleted file mode 100755
index df4dc43..0000000
Binary files a/m2/r89.png and /dev/null differ
diff --git a/m2/r9.png b/m2/r9.png
deleted file mode 100755
index e41cfe7..0000000
Binary files a/m2/r9.png and /dev/null differ
diff --git a/m2/r90.png b/m2/r90.png
deleted file mode 100755
index 373b996..0000000
Binary files a/m2/r90.png and /dev/null differ
diff --git a/m2/r91.png b/m2/r91.png
deleted file mode 100755
index af7bdea..0000000
Binary files a/m2/r91.png and /dev/null differ
diff --git a/m2/r92.png b/m2/r92.png
deleted file mode 100755
index 44c3fb2..0000000
Binary files a/m2/r92.png and /dev/null differ
diff --git a/m2/r93.png b/m2/r93.png
deleted file mode 100755
index b13fa9c..0000000
Binary files a/m2/r93.png and /dev/null differ
diff --git a/m2/r94.png b/m2/r94.png
deleted file mode 100755
index 4586b0c..0000000
Binary files a/m2/r94.png and /dev/null differ
diff --git a/m2/r95.png b/m2/r95.png
deleted file mode 100755
index 3bad686..0000000
Binary files a/m2/r95.png and /dev/null differ
diff --git a/m2/r96.png b/m2/r96.png
deleted file mode 100755
index a3a8da6..0000000
Binary files a/m2/r96.png and /dev/null differ
diff --git a/m2/r97.png b/m2/r97.png
deleted file mode 100755
index 1ec5678..0000000
Binary files a/m2/r97.png and /dev/null differ
diff --git a/m2/r98.png b/m2/r98.png
deleted file mode 100755
index 181885a..0000000
Binary files a/m2/r98.png and /dev/null differ
diff --git a/m2/r99.png b/m2/r99.png
deleted file mode 100755
index a2321f1..0000000
Binary files a/m2/r99.png and /dev/null differ
diff --git a/main.py b/main.py
index a00cee7..2fda078 100755
--- a/main.py
+++ b/main.py
@@ -1,73 +1,42 @@
from Plotter import *
from Command import *
from Program import *
+import sys
+import os
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'generators'))
import tkinter as tk
from koche import koche
def show(p):
- win=tk.Tk()
+ win = tk.Tk()
win.title('HPGLPLOTTER')
- plt=Plotter()
- p=plt.full(p)
- canvas=tk.Canvas(win,width=600,height=600)
- canvas.grid(row=0,column=0)
+ plt = Plotter()
+ p = plt.full(p)
+ canvas = tk.Canvas(win, width=600, height=600)
+ canvas.grid(row=0, column=0)
x = y = 0
for command in p.commands:
if command.name == 'PU':
- x,y = command.x,command.y
- elif command.name=='PD':
- canvas.create_line(x,y,command.x,command.y)
- x,y = command.x,command.y
+ x, y = command.x, command.y
+ elif command.name == 'PD':
+ canvas.create_line(x, y, command.x, command.y)
+ x, y = command.x, command.y
elif command.name == 'CI':
- r=command.args[0]
- canvas.create_oval(x-r,y-r,x+r,y+r)
-
+ r = command.args[0]
+ canvas.create_oval(x - r, y - r, x + r, y + r)
win.mainloop()
-plt=Plotter()
-p=Program()
-#p.parsefile('hpgl/luz.hpgl')
-p.parsefile('hpgl/kreis.hpgl')
-#p=p*10000
+plt = Plotter()
+p = Program.parsefile('output/hpgl/kreis.hpgl')
-
-print(plt.winsize[0]*0.025, plt.winsize[1]*0.025)
-p=plt.full(p)
-#p=p.flip()
-#q=q.flip()
+print(plt.winsize[0] * 0.025, plt.winsize[1] * 0.025)
+p = plt.full(p)
print(p.center)
print(plt.center)
-#q=q+(p.xmax,0)
-#p=p.rotate(90)
-p=plt.centralize(p)
-#p=p-p.center
-#p=p+(120,120)
-#q=plt.centralize(q)
-#q=q+(0,p.ymax*1.05)
-#p=p+120
-#p=p.flip()
-#p=p*0.7
-#p=p+(959,9128.35)
-
-#out=out.flip()
-#out=plt.full(out)
-#p=p+100
-#out=plt.centralize(out)
-#=out+(40,40)
-#out=p
+p = plt.centralize(p)
print(str(p))
print('p.xmin,q.xmin,p.ymin,q.ymin,p.xmax,q.xmax,pymax,q,ymax')
-
-
print(len(p))
-#print str(out)
-#show(p+q)
-#show(p)
plt.write(p)
-
-
-
-
-
diff --git a/maintk.py b/maintk.py
index 088782b..a650de6 100755
--- a/maintk.py
+++ b/maintk.py
@@ -75,8 +75,7 @@ class App:
def file_open(self):
filename = tkFileDialog.askopenfilename()
if filename:
- p=Program()
- p.parsefile(filename)
+ p = Program.parsefile(filename)
self.programs.append(p)
self.filename = filename
self.listBox.insert(tk.END, os.path.basename(filename))
diff --git a/mandel/r0.png b/mandel/r0.png
deleted file mode 100755
index 1a822e6..0000000
Binary files a/mandel/r0.png and /dev/null differ
diff --git a/mandel/r1.png b/mandel/r1.png
deleted file mode 100755
index 2b2f24b..0000000
Binary files a/mandel/r1.png and /dev/null differ
diff --git a/mandel/r10.png b/mandel/r10.png
deleted file mode 100755
index 8e1cefc..0000000
Binary files a/mandel/r10.png and /dev/null differ
diff --git a/mandel/r11.png b/mandel/r11.png
deleted file mode 100755
index 80a0e47..0000000
Binary files a/mandel/r11.png and /dev/null differ
diff --git a/mandel/r12.png b/mandel/r12.png
deleted file mode 100755
index 2ce2343..0000000
Binary files a/mandel/r12.png and /dev/null differ
diff --git a/mandel/r13.png b/mandel/r13.png
deleted file mode 100755
index b1896a6..0000000
Binary files a/mandel/r13.png and /dev/null differ
diff --git a/mandel/r14.png b/mandel/r14.png
deleted file mode 100755
index 98bc949..0000000
Binary files a/mandel/r14.png and /dev/null differ
diff --git a/mandel/r15.png b/mandel/r15.png
deleted file mode 100755
index 6774618..0000000
Binary files a/mandel/r15.png and /dev/null differ
diff --git a/mandel/r16.png b/mandel/r16.png
deleted file mode 100755
index e3883cb..0000000
Binary files a/mandel/r16.png and /dev/null differ
diff --git a/mandel/r17.png b/mandel/r17.png
deleted file mode 100755
index ec52d18..0000000
Binary files a/mandel/r17.png and /dev/null differ
diff --git a/mandel/r18.png b/mandel/r18.png
deleted file mode 100755
index b43ea29..0000000
Binary files a/mandel/r18.png and /dev/null differ
diff --git a/mandel/r19.png b/mandel/r19.png
deleted file mode 100755
index 1d25b73..0000000
Binary files a/mandel/r19.png and /dev/null differ
diff --git a/mandel/r2.png b/mandel/r2.png
deleted file mode 100755
index 2ab0363..0000000
Binary files a/mandel/r2.png and /dev/null differ
diff --git a/mandel/r20.png b/mandel/r20.png
deleted file mode 100755
index ec5c848..0000000
Binary files a/mandel/r20.png and /dev/null differ
diff --git a/mandel/r21.png b/mandel/r21.png
deleted file mode 100755
index a8f04df..0000000
Binary files a/mandel/r21.png and /dev/null differ
diff --git a/mandel/r22.png b/mandel/r22.png
deleted file mode 100755
index 34118e4..0000000
Binary files a/mandel/r22.png and /dev/null differ
diff --git a/mandel/r23.png b/mandel/r23.png
deleted file mode 100755
index 10afaa1..0000000
Binary files a/mandel/r23.png and /dev/null differ
diff --git a/mandel/r24.png b/mandel/r24.png
deleted file mode 100755
index 74df57d..0000000
Binary files a/mandel/r24.png and /dev/null differ
diff --git a/mandel/r25.png b/mandel/r25.png
deleted file mode 100755
index 08ef107..0000000
Binary files a/mandel/r25.png and /dev/null differ
diff --git a/mandel/r26.png b/mandel/r26.png
deleted file mode 100755
index 48096b5..0000000
Binary files a/mandel/r26.png and /dev/null differ
diff --git a/mandel/r27.png b/mandel/r27.png
deleted file mode 100755
index ba3a965..0000000
Binary files a/mandel/r27.png and /dev/null differ
diff --git a/mandel/r28.png b/mandel/r28.png
deleted file mode 100755
index f31a598..0000000
Binary files a/mandel/r28.png and /dev/null differ
diff --git a/mandel/r29.png b/mandel/r29.png
deleted file mode 100755
index 1518ce1..0000000
Binary files a/mandel/r29.png and /dev/null differ
diff --git a/mandel/r3.png b/mandel/r3.png
deleted file mode 100755
index 9c538b5..0000000
Binary files a/mandel/r3.png and /dev/null differ
diff --git a/mandel/r30.png b/mandel/r30.png
deleted file mode 100755
index acc2e5b..0000000
Binary files a/mandel/r30.png and /dev/null differ
diff --git a/mandel/r31.png b/mandel/r31.png
deleted file mode 100755
index a0eb201..0000000
Binary files a/mandel/r31.png and /dev/null differ
diff --git a/mandel/r32.png b/mandel/r32.png
deleted file mode 100755
index 69f0f5e..0000000
Binary files a/mandel/r32.png and /dev/null differ
diff --git a/mandel/r33.png b/mandel/r33.png
deleted file mode 100755
index 1d2fab0..0000000
Binary files a/mandel/r33.png and /dev/null differ
diff --git a/mandel/r34.png b/mandel/r34.png
deleted file mode 100755
index aa29e18..0000000
Binary files a/mandel/r34.png and /dev/null differ
diff --git a/mandel/r35.png b/mandel/r35.png
deleted file mode 100755
index ffdec98..0000000
Binary files a/mandel/r35.png and /dev/null differ
diff --git a/mandel/r36.png b/mandel/r36.png
deleted file mode 100755
index ca59c48..0000000
Binary files a/mandel/r36.png and /dev/null differ
diff --git a/mandel/r37.png b/mandel/r37.png
deleted file mode 100755
index f857db0..0000000
Binary files a/mandel/r37.png and /dev/null differ
diff --git a/mandel/r38.png b/mandel/r38.png
deleted file mode 100755
index b138c3a..0000000
Binary files a/mandel/r38.png and /dev/null differ
diff --git a/mandel/r39.png b/mandel/r39.png
deleted file mode 100755
index f90f309..0000000
Binary files a/mandel/r39.png and /dev/null differ
diff --git a/mandel/r4.png b/mandel/r4.png
deleted file mode 100755
index 7095421..0000000
Binary files a/mandel/r4.png and /dev/null differ
diff --git a/mandel/r40.png b/mandel/r40.png
deleted file mode 100755
index d06a570..0000000
Binary files a/mandel/r40.png and /dev/null differ
diff --git a/mandel/r41.png b/mandel/r41.png
deleted file mode 100755
index 29afe77..0000000
Binary files a/mandel/r41.png and /dev/null differ
diff --git a/mandel/r42.png b/mandel/r42.png
deleted file mode 100755
index 3c0cfeb..0000000
Binary files a/mandel/r42.png and /dev/null differ
diff --git a/mandel/r43.png b/mandel/r43.png
deleted file mode 100755
index 8888705..0000000
Binary files a/mandel/r43.png and /dev/null differ
diff --git a/mandel/r44.png b/mandel/r44.png
deleted file mode 100755
index 669fa87..0000000
Binary files a/mandel/r44.png and /dev/null differ
diff --git a/mandel/r45.png b/mandel/r45.png
deleted file mode 100755
index 128cfb9..0000000
Binary files a/mandel/r45.png and /dev/null differ
diff --git a/mandel/r46.png b/mandel/r46.png
deleted file mode 100755
index 9addfd8..0000000
Binary files a/mandel/r46.png and /dev/null differ
diff --git a/mandel/r47.png b/mandel/r47.png
deleted file mode 100755
index 84e7cfe..0000000
Binary files a/mandel/r47.png and /dev/null differ
diff --git a/mandel/r48.png b/mandel/r48.png
deleted file mode 100755
index 52466f2..0000000
Binary files a/mandel/r48.png and /dev/null differ
diff --git a/mandel/r49.png b/mandel/r49.png
deleted file mode 100755
index 67a1bc5..0000000
Binary files a/mandel/r49.png and /dev/null differ
diff --git a/mandel/r5.png b/mandel/r5.png
deleted file mode 100755
index 0166d31..0000000
Binary files a/mandel/r5.png and /dev/null differ
diff --git a/mandel/r50.png b/mandel/r50.png
deleted file mode 100755
index 70956ba..0000000
Binary files a/mandel/r50.png and /dev/null differ
diff --git a/mandel/r51.png b/mandel/r51.png
deleted file mode 100755
index 99ed118..0000000
Binary files a/mandel/r51.png and /dev/null differ
diff --git a/mandel/r52.png b/mandel/r52.png
deleted file mode 100755
index 8abe671..0000000
Binary files a/mandel/r52.png and /dev/null differ
diff --git a/mandel/r53.png b/mandel/r53.png
deleted file mode 100755
index 1788fdd..0000000
Binary files a/mandel/r53.png and /dev/null differ
diff --git a/mandel/r54.png b/mandel/r54.png
deleted file mode 100755
index 7f14e32..0000000
Binary files a/mandel/r54.png and /dev/null differ
diff --git a/mandel/r55.png b/mandel/r55.png
deleted file mode 100755
index 001e257..0000000
Binary files a/mandel/r55.png and /dev/null differ
diff --git a/mandel/r56.png b/mandel/r56.png
deleted file mode 100755
index 84b4dfe..0000000
Binary files a/mandel/r56.png and /dev/null differ
diff --git a/mandel/r57.png b/mandel/r57.png
deleted file mode 100755
index 1206d1d..0000000
Binary files a/mandel/r57.png and /dev/null differ
diff --git a/mandel/r58.png b/mandel/r58.png
deleted file mode 100755
index ffacacc..0000000
Binary files a/mandel/r58.png and /dev/null differ
diff --git a/mandel/r59.png b/mandel/r59.png
deleted file mode 100755
index 9391203..0000000
Binary files a/mandel/r59.png and /dev/null differ
diff --git a/mandel/r6.png b/mandel/r6.png
deleted file mode 100755
index e0f39f1..0000000
Binary files a/mandel/r6.png and /dev/null differ
diff --git a/mandel/r60.png b/mandel/r60.png
deleted file mode 100755
index ed84942..0000000
Binary files a/mandel/r60.png and /dev/null differ
diff --git a/mandel/r61.png b/mandel/r61.png
deleted file mode 100755
index 69de953..0000000
Binary files a/mandel/r61.png and /dev/null differ
diff --git a/mandel/r62.png b/mandel/r62.png
deleted file mode 100755
index bb09452..0000000
Binary files a/mandel/r62.png and /dev/null differ
diff --git a/mandel/r63.png b/mandel/r63.png
deleted file mode 100755
index 8be5691..0000000
Binary files a/mandel/r63.png and /dev/null differ
diff --git a/mandel/r64.png b/mandel/r64.png
deleted file mode 100755
index a3a3a15..0000000
Binary files a/mandel/r64.png and /dev/null differ
diff --git a/mandel/r65.png b/mandel/r65.png
deleted file mode 100755
index 5d4246e..0000000
Binary files a/mandel/r65.png and /dev/null differ
diff --git a/mandel/r66.png b/mandel/r66.png
deleted file mode 100755
index 0375d22..0000000
Binary files a/mandel/r66.png and /dev/null differ
diff --git a/mandel/r67.png b/mandel/r67.png
deleted file mode 100755
index 5eb7cd7..0000000
Binary files a/mandel/r67.png and /dev/null differ
diff --git a/mandel/r68.png b/mandel/r68.png
deleted file mode 100755
index b3b85e2..0000000
Binary files a/mandel/r68.png and /dev/null differ
diff --git a/mandel/r69.png b/mandel/r69.png
deleted file mode 100755
index cbb3453..0000000
Binary files a/mandel/r69.png and /dev/null differ
diff --git a/mandel/r7.png b/mandel/r7.png
deleted file mode 100755
index ae8e9e2..0000000
Binary files a/mandel/r7.png and /dev/null differ
diff --git a/mandel/r70.png b/mandel/r70.png
deleted file mode 100755
index 6fdbd91..0000000
Binary files a/mandel/r70.png and /dev/null differ
diff --git a/mandel/r71.png b/mandel/r71.png
deleted file mode 100755
index 6237c44..0000000
Binary files a/mandel/r71.png and /dev/null differ
diff --git a/mandel/r72.png b/mandel/r72.png
deleted file mode 100755
index 487e37e..0000000
Binary files a/mandel/r72.png and /dev/null differ
diff --git a/mandel/r73.png b/mandel/r73.png
deleted file mode 100755
index a04fa6b..0000000
Binary files a/mandel/r73.png and /dev/null differ
diff --git a/mandel/r74.png b/mandel/r74.png
deleted file mode 100755
index e59c83c..0000000
Binary files a/mandel/r74.png and /dev/null differ
diff --git a/mandel/r75.png b/mandel/r75.png
deleted file mode 100755
index e04d368..0000000
Binary files a/mandel/r75.png and /dev/null differ
diff --git a/mandel/r76.png b/mandel/r76.png
deleted file mode 100755
index 601b9b1..0000000
Binary files a/mandel/r76.png and /dev/null differ
diff --git a/mandel/r77.png b/mandel/r77.png
deleted file mode 100755
index d408d09..0000000
Binary files a/mandel/r77.png and /dev/null differ
diff --git a/mandel/r78.png b/mandel/r78.png
deleted file mode 100755
index 46a863b..0000000
Binary files a/mandel/r78.png and /dev/null differ
diff --git a/mandel/r79.png b/mandel/r79.png
deleted file mode 100755
index 50c4a89..0000000
Binary files a/mandel/r79.png and /dev/null differ
diff --git a/mandel/r8.png b/mandel/r8.png
deleted file mode 100755
index d2f0b3a..0000000
Binary files a/mandel/r8.png and /dev/null differ
diff --git a/mandel/r80.png b/mandel/r80.png
deleted file mode 100755
index 67e87a7..0000000
Binary files a/mandel/r80.png and /dev/null differ
diff --git a/mandel/r81.png b/mandel/r81.png
deleted file mode 100755
index 75ed888..0000000
Binary files a/mandel/r81.png and /dev/null differ
diff --git a/mandel/r82.png b/mandel/r82.png
deleted file mode 100755
index a8fe490..0000000
Binary files a/mandel/r82.png and /dev/null differ
diff --git a/mandel/r83.png b/mandel/r83.png
deleted file mode 100755
index ca2988b..0000000
Binary files a/mandel/r83.png and /dev/null differ
diff --git a/mandel/r84.png b/mandel/r84.png
deleted file mode 100755
index 2d9b267..0000000
Binary files a/mandel/r84.png and /dev/null differ
diff --git a/mandel/r85.png b/mandel/r85.png
deleted file mode 100755
index 86dd1f8..0000000
Binary files a/mandel/r85.png and /dev/null differ
diff --git a/mandel/r86.png b/mandel/r86.png
deleted file mode 100755
index f2f9382..0000000
Binary files a/mandel/r86.png and /dev/null differ
diff --git a/mandel/r87.png b/mandel/r87.png
deleted file mode 100755
index 1d64162..0000000
Binary files a/mandel/r87.png and /dev/null differ
diff --git a/mandel/r88.png b/mandel/r88.png
deleted file mode 100755
index 36c734e..0000000
Binary files a/mandel/r88.png and /dev/null differ
diff --git a/mandel/r89.png b/mandel/r89.png
deleted file mode 100755
index 6eff587..0000000
Binary files a/mandel/r89.png and /dev/null differ
diff --git a/mandel/r9.png b/mandel/r9.png
deleted file mode 100755
index 0f9f188..0000000
Binary files a/mandel/r9.png and /dev/null differ
diff --git a/mandel/r90.png b/mandel/r90.png
deleted file mode 100755
index c3825b3..0000000
Binary files a/mandel/r90.png and /dev/null differ
diff --git a/mandel/r91.png b/mandel/r91.png
deleted file mode 100755
index 4fbd971..0000000
Binary files a/mandel/r91.png and /dev/null differ
diff --git a/mandel/r92.png b/mandel/r92.png
deleted file mode 100755
index 0056790..0000000
Binary files a/mandel/r92.png and /dev/null differ
diff --git a/mandel/r93.png b/mandel/r93.png
deleted file mode 100755
index 931cfa5..0000000
Binary files a/mandel/r93.png and /dev/null differ
diff --git a/mandel/r94.png b/mandel/r94.png
deleted file mode 100755
index ef8853f..0000000
Binary files a/mandel/r94.png and /dev/null differ
diff --git a/mandel/r95.png b/mandel/r95.png
deleted file mode 100755
index 5f914cb..0000000
Binary files a/mandel/r95.png and /dev/null differ
diff --git a/mandel/r96.png b/mandel/r96.png
deleted file mode 100755
index 7eca3ec..0000000
Binary files a/mandel/r96.png and /dev/null differ
diff --git a/mandel/r97.png b/mandel/r97.png
deleted file mode 100755
index 4b27e72..0000000
Binary files a/mandel/r97.png and /dev/null differ
diff --git a/mandel/r98.png b/mandel/r98.png
deleted file mode 100755
index 9049c62..0000000
Binary files a/mandel/r98.png and /dev/null differ
diff --git a/mandel/r99.png b/mandel/r99.png
deleted file mode 100755
index 07a8e74..0000000
Binary files a/mandel/r99.png and /dev/null differ
diff --git a/moritz.hpgl~ b/moritz.hpgl~
deleted file mode 100755
index 1d4acd5..0000000
--- a/moritz.hpgl~
+++ /dev/null
@@ -1,425 +0,0 @@
-##sK1 1 2
-document()
-layout('A4',(595.276,841.89),0)
-grid((0,0,2.83465,2.83465),0,("RGB",0.0,0.0,1.0),'Gitter')
-page('','A4',(595.276,841.89),0)
-layer('PLT_objects',1,1,0,0,("RGB",0.196,0.314,0.635))
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(68.9528,376.157,0)
-bs(69.0945,375.945,0)
-bs(69.3071,375.945,0)
-bs(69.4488,376.087,0)
-bs(71.9291,380.622,0)
-bs(71.9291,380.622,0)
-bs(74.4094,376.087,0)
-bs(74.622,375.945,0)
-bs(74.7638,375.945,0)
-bs(74.9764,376.157,0)
-bs(76.1811,383.244,0)
-bs(75.9685,383.528,0)
-bs(74.6929,383.528,0)
-bs(74.4803,383.315,0)
-bs(74.0551,380.055,0)
-bs(73.9843,380.055,0)
-bs(72.2126,383.457,0)
-bs(72.0709,383.598,0)
-bs(71.8583,383.598,0)
-bs(71.6457,383.457,0)
-bs(69.874,380.055,0)
-bs(69.874,380.055,0)
-bs(69.378,383.315,0)
-bs(69.1654,383.528,0)
-bs(67.9606,383.528,0)
-bs(67.748,383.244,0)
-bs(68.9528,376.157,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(80.1496,382.252,0)
-bs(80.7874,381.969,0)
-bs(81,381.331,0)
-bs(80.7874,380.764,0)
-bs(80.1496,380.48,0)
-bs(79.5827,380.764,0)
-bs(79.3701,381.331,0)
-bs(79.5827,381.969,0)
-bs(80.1496,382.252,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(80.1496,379.134,0)
-bs(81,379.346,0)
-bs(81.7087,379.772,0)
-bs(82.2047,380.48,0)
-bs(82.4173,381.331,0)
-bs(82.2047,382.252,0)
-bs(81.7087,382.961,0)
-bs(81,383.457,0)
-bs(80.1496,383.598,0)
-bs(79.2992,383.457,0)
-bs(78.5906,382.961,0)
-bs(78.1654,382.252,0)
-bs(77.9528,381.331,0)
-bs(78.1654,380.48,0)
-bs(78.5906,379.772,0)
-bs(79.2992,379.346,0)
-bs(80.1496,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(84.2598,379.488,0)
-bs(84.4724,379.276,0)
-bs(84.9685,379.276,0)
-bs(85.1811,379.346,0)
-bs(85.3228,379.843,0)
-bs(85.8189,379.346,0)
-bs(86.5276,379.134,0)
-bs(87.2362,379.276,0)
-bs(87.378,379.63,0)
-bs(86.811,380.48,0)
-bs(86.5984,380.551,0)
-bs(86.315,380.48,0)
-bs(85.9606,380.693,0)
-bs(85.8189,381.118,0)
-bs(85.8189,383.315,0)
-bs(85.5354,383.528,0)
-bs(84.4724,383.528,0)
-bs(84.2598,383.315,0)
-bs(84.2598,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(89.0079,379.488,0)
-bs(89.2205,379.276,0)
-bs(90.3543,379.276,0)
-bs(90.5669,379.488,0)
-bs(90.5669,383.315,0)
-bs(90.3543,383.528,0)
-bs(89.2205,383.528,0)
-bs(89.0079,383.315,0)
-bs(89.0079,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(88.937,377.15,0)
-bs(89.1496,376.512,0)
-bs(89.7874,376.299,0)
-bs(90.3543,376.512,0)
-bs(90.6378,377.15,0)
-bs(90.3543,377.717,0)
-bs(89.7874,378,0)
-bs(89.1496,377.717,0)
-bs(88.937,377.15,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(92.9055,380.622,0)
-bs(92.622,380.622,0)
-bs(92.4094,380.409,0)
-bs(92.4094,379.488,0)
-bs(92.622,379.276,0)
-bs(92.9055,379.276,0)
-bs(92.9055,378.071,0)
-bs(93.1181,377.858,0)
-bs(94.252,377.858,0)
-bs(94.4646,378.071,0)
-bs(94.4646,379.276,0)
-bs(95.2441,379.276,0)
-bs(95.4567,379.488,0)
-bs(95.4567,380.409,0)
-bs(95.2441,380.622,0)
-bs(94.4646,380.622,0)
-bs(94.4646,381.898,0)
-bs(94.5354,382.11,0)
-bs(94.748,382.181,0)
-bs(95.1024,382.11,0)
-bs(95.3858,382.252,0)
-bs(95.5984,383.102,0)
-bs(95.4567,383.386,0)
-bs(94.1811,383.598,0)
-bs(93.2598,383.244,0)
-bs(92.9055,382.11,0)
-bs(92.9055,380.622,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(97.2283,383.173,0)
-bs(98.4331,380.622,0)
-bs(98.4331,380.622,0)
-bs(97.5118,380.622,0)
-bs(97.2992,380.409,0)
-bs(97.2992,379.488,0)
-bs(97.5118,379.276,0)
-bs(100.346,379.276,0)
-bs(100.559,379.559,0)
-bs(99.2126,382.11,0)
-bs(99.2126,382.11,0)
-bs(100.205,382.11,0)
-bs(100.346,382.323,0)
-bs(100.346,383.315,0)
-bs(100.205,383.528,0)
-bs(97.4409,383.528,0)
-bs(97.2283,383.315,0)
-bs(97.2283,383.173,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(106.157,376.299,0)
-bs(106.37,376.087,0)
-bs(107.646,376.087,0)
-bs(107.858,376.299,0)
-bs(107.858,378.921,0)
-bs(110.906,378.921,0)
-bs(110.906,376.299,0)
-bs(111.118,376.087,0)
-bs(112.323,376.087,0)
-bs(112.535,376.299,0)
-bs(112.535,383.315,0)
-bs(112.323,383.528,0)
-bs(111.118,383.528,0)
-bs(110.906,383.315,0)
-bs(110.906,380.48,0)
-bs(107.858,380.48,0)
-bs(107.858,383.315,0)
-bs(107.646,383.528,0)
-bs(106.37,383.528,0)
-bs(106.157,383.315,0)
-bs(106.157,376.299,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(117.567,377.079,0)
-bs(117.78,376.512,0)
-bs(118.276,376.299,0)
-bs(118.772,376.512,0)
-bs(119.055,377.079,0)
-bs(118.772,377.575,0)
-bs(118.276,377.787,0)
-bs(117.78,377.575,0)
-bs(117.567,377.079,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(115.37,377.079,0)
-bs(115.583,376.512,0)
-bs(116.079,376.299,0)
-bs(116.646,376.512,0)
-bs(116.858,377.079,0)
-bs(116.646,377.575,0)
-bs(116.079,377.787,0)
-bs(115.583,377.575,0)
-bs(115.37,377.079,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(115.016,379.488,0)
-bs(115.157,379.276,0)
-bs(116.291,379.276,0)
-bs(116.504,379.488,0)
-bs(116.504,381.402,0)
-bs(116.717,381.969,0)
-bs(117.213,382.252,0)
-bs(117.709,381.969,0)
-bs(117.85,381.472,0)
-bs(117.85,379.488,0)
-bs(118.063,379.276,0)
-bs(119.126,379.276,0)
-bs(119.339,379.488,0)
-bs(119.339,383.315,0)
-bs(119.126,383.528,0)
-bs(118.63,383.528,0)
-bs(118.417,383.315,0)
-bs(118.276,382.961,0)
-bs(117.78,383.386,0)
-bs(116.858,383.598,0)
-bs(116.008,383.457,0)
-bs(115.441,382.961,0)
-bs(115.087,382.252,0)
-bs(115.016,381.402,0)
-bs(115.016,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(121.748,380.622,0)
-bs(121.465,380.622,0)
-bs(121.252,380.409,0)
-bs(121.252,379.488,0)
-bs(121.465,379.276,0)
-bs(121.748,379.276,0)
-bs(121.748,378.071,0)
-bs(121.961,377.858,0)
-bs(123.094,377.858,0)
-bs(123.236,378.071,0)
-bs(123.236,379.276,0)
-bs(124.016,379.276,0)
-bs(124.228,379.488,0)
-bs(124.228,380.409,0)
-bs(124.016,380.622,0)
-bs(123.236,380.622,0)
-bs(123.236,381.898,0)
-bs(123.378,382.11,0)
-bs(123.52,382.181,0)
-bs(123.945,382.11,0)
-bs(124.157,382.252,0)
-bs(124.441,383.102,0)
-bs(124.299,383.386,0)
-bs(123.024,383.598,0)
-bs(122.031,383.244,0)
-bs(121.748,382.11,0)
-bs(121.748,380.622,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(126.425,380.622,0)
-bs(126.142,380.622,0)
-bs(126,380.409,0)
-bs(126,379.488,0)
-bs(126.142,379.276,0)
-bs(126.425,379.276,0)
-bs(126.425,378.071,0)
-bs(126.638,377.858,0)
-bs(127.772,377.858,0)
-bs(127.984,378.071,0)
-bs(127.984,379.276,0)
-bs(128.764,379.276,0)
-bs(128.976,379.488,0)
-bs(128.976,380.409,0)
-bs(128.764,380.622,0)
-bs(127.984,380.622,0)
-bs(127.984,381.898,0)
-bs(128.055,382.11,0)
-bs(128.268,382.181,0)
-bs(128.693,382.11,0)
-bs(128.906,382.252,0)
-bs(129.118,383.102,0)
-bs(128.976,383.386,0)
-bs(127.701,383.598,0)
-bs(126.78,383.244,0)
-bs(126.425,382.11,0)
-bs(126.425,380.622,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(130.961,379.488,0)
-bs(131.173,379.276,0)
-bs(131.669,379.276,0)
-bs(131.882,379.346,0)
-bs(132.024,379.772,0)
-bs(132.591,379.346,0)
-bs(133.583,379.134,0)
-bs(134.433,379.346,0)
-bs(135.071,379.772,0)
-bs(135.425,380.48,0)
-bs(135.567,381.331,0)
-bs(135.567,383.315,0)
-bs(135.354,383.528,0)
-bs(134.22,383.528,0)
-bs(134.008,383.315,0)
-bs(134.008,381.331,0)
-bs(133.866,380.764,0)
-bs(133.299,380.551,0)
-bs(132.732,380.693,0)
-bs(132.52,381.26,0)
-bs(132.52,383.315,0)
-bs(132.307,383.528,0)
-bs(131.173,383.528,0)
-bs(130.961,383.315,0)
-bs(130.961,379.488,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(140.102,380.764,0)
-bs(139.89,380.409,0)
-bs(139.535,380.268,0)
-bs(139.11,380.409,0)
-bs(138.898,380.764,0)
-bs(140.102,380.764,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(139.535,379.134,0)
-bs(140.315,379.276,0)
-bs(140.953,379.701,0)
-bs(141.378,380.339,0)
-bs(141.591,381.118,0)
-bs(141.52,381.402,0)
-bs(141.307,381.614,0)
-bs(138.827,381.614,0)
-bs(139.039,382.039,0)
-bs(139.606,382.323,0)
-bs(140.386,382.039,0)
-bs(140.598,382.039,0)
-bs(141.165,382.677,0)
-bs(141.165,383.031,0)
-bs(140.457,383.457,0)
-bs(139.535,383.598,0)
-bs(138.685,383.457,0)
-bs(137.976,382.961,0)
-bs(137.551,382.252,0)
-bs(137.339,381.402,0)
-bs(137.551,380.551,0)
-bs(137.976,379.843,0)
-bs(138.685,379.346,0)
-bs(139.535,379.134,0)
-bC()
-lw(0.85)
-lc(2)
-lj(1)
-b()
-bs(143.433,379.488,0)
-bs(143.646,379.276,0)
-bs(144.142,379.276,0)
-bs(144.283,379.346,0)
-bs(144.496,379.843,0)
-bs(144.992,379.346,0)
-bs(145.63,379.134,0)
-bs(146.339,379.276,0)
-bs(146.48,379.63,0)
-bs(145.984,380.48,0)
-bs(145.772,380.551,0)
-bs(145.488,380.48,0)
-bs(145.134,380.693,0)
-bs(144.921,381.118,0)
-bs(144.921,383.315,0)
-bs(144.709,383.528,0)
-bs(143.646,383.528,0)
-bs(143.433,383.315,0)
-bs(143.433,379.488,0)
-bC()
-masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635))
-guidelayer('Hilfslinien',1,0,0,1,("RGB",0.0,0.3,1.0))
diff --git a/oldpy/backupcg5-class_backup.py b/oldpy/backupcg5-class_backup.py
deleted file mode 100755
index 68f3c64..0000000
--- a/oldpy/backupcg5-class_backup.py
+++ /dev/null
@@ -1,165 +0,0 @@
-from __future__ import division
-import serial
-
-
-
-class Command:
-
- def __init__(self, name, *args):
- self.name = name # hpgl Command name e.g. PU, PA,
- self.args = args # list of Position args
-
- @property
- def x(self):
- return self.args[0] \
- if self.name in ("PA", "PD", "PR", "PU" ) and self.args else \
- None # Only these Commads have args
-
- @property
- def y(self):
- return self.args[1] \
- if self.name in ("PA", "PD", "PR", "PU" ) and self.args else \
- None
-
- def __str__(self):
- return self.name + ",".join(str(arg) for arg in self.args) + ";"
-
- def __mul__(self, factor):
- if self.name not in ("PA", "PD", "PR", "PU" ) or not self.args:
- return self
- if type(factor) == type(0) or type(factor) == type(0.0):
- factor = (factor, factor)
- return Command(self.name,
- int(self.x * factor[0]),
- int(self.y * factor[1]))
-
- def __add__(self, addend):
- if self.name not in ("PA", "PD", "PR", "PU" ) or not self.args:
- return self
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return Command(self.name,
- int(self.x + addend[0]),
- int(self.y + addend[1]))
-
- def __sub__(self, addend):
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return self + (-addend[0], -addend[1])
-
-class Program:
-
- def __init__(self, commands=[]):
- self.commands = commands
-
- def parsefile(self, filename):
- with open(filename) as file:
- self.parse( file.read())
-
- def parse(self, code):
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [int(arg) for arg in args.split(",")] if args else []
- #print name , args
- self.commands.append(Command(name, *args))
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
-
-
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
-
-
- def __add__(self, arg):
- return Program([command + arg for command in self.commands])
-
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
-
- @property
- def xmax(self):
- return max(command.x for command in self.commands if command.x)
- @property
- def xmin(self):
- return min(command.x for command in self.commands if command.x)
- @property
- def ymax(self):
- return max(command.y for command in self.commands if command.y)
- @property
- def ymin(self):
- return min(command.y for command in self.commands if command.y)
- @property
- def center(self):
- return (self.xmin+self.ymin)/2,(self.ymin+self.ymax)/2
- @property
- def size(self): return self.xmax-self.xmin , self.yax - self.ymin
-
-
-
-class Plotter:
-
- def __init__(self):
- try:
- self.ser = serial.Serial('/dev/ttyUSB0', 9600)
- self.ser.write('OW;')
- s = []
- if not s:
- print 'I/O Fehler ist der Plotter bereit'
- while True:
- x = self.ser.read()
- if x == "\x0d":
- break
- s.append(x)
- self.__boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- except OSError:
- self.__boundaries = 0,0,0,0
- print "No such file or directory: '/dev/ttyUSB0'"
-
-
-
-
- @property
- def xmin(self):
- return self.__boundaries[0]
-
- @property
- def ymin(self):
- return self.__boundaries[1]
-
- @property
- def xmax(self):
- return self.__boundaries[2]
-
- @property
- def ymax(self):
- return self.__boundaries[3]
-
- @property
- def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
-
- def write(self,programm):
- self.ser.write(str(programm))
- @property
- def winsize(self): return self.xmax-self.xmin , self.yax - self.ymin
-
-
-
-
-p = Program()
-p.parsefile("Clitoris.hpgl" )
-#print p
-
-p=p*(1.2,-1.2)
-p= p-(4000,-4500)
-plt=Plotter()
-print p.xmax
-print p.ymax
-print p.xmin
-print p.ymin
-print p.center
-#plt.write(p)
-#print getWin()
-
diff --git a/oldpy/cg5-boolean_exp.py b/oldpy/cg5-boolean_exp.py
deleted file mode 100755
index 429d5a3..0000000
--- a/oldpy/cg5-boolean_exp.py
+++ /dev/null
@@ -1,280 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import division
-import serial
-import time
-import math
-
-
-
-
-
-class Command:
- inicoms= ("IN", "SP", "LT")
- scalecoms=("PA", "PD", "PR", "PU", "CI" )
- movecoms=("PA", "PD", "PR", "PU" )
-
- def __init__(self, name, *args):
- self.name = name # hpgl Command name e.g. PU, PA,
- self.args = args # list of Position args
-
- @property
- def scalable(self):
- return True \
- if self.name in Command.scalecoms and self.args else \
- False
- @property
- def movable(self):
- return True \
- if self.name in Command.movecoms and self.args else \
- False
-
- @property
- def x(self):
- return self.args[0] \
- if self.movable else\
- None
-
- @property
- def y(self):
- return self.args[1] \
- if self.movable else\
- None
-
- def __len__(self):
- return len(str(self))
-
- def __str__(self):
- return self.name + ",".join(str(arg) for arg in self.args) + ";"
-
- def __mul__(self, factor):
- if not self.scalable:
- return self
- if type(factor) == type(0) or type(factor) == type(0.0):
- factor = (factor, factor)
- return Command(self.name,
- int(self.args[0] * factor[0]),
- int(self.args[1] * factor[1])) \
- if len(self.args)>1 else\
- Command(self.name,int(self.args[0]*factor[0]) )
-
- def __add__(self, addend):
- if not self.movable:
- return self
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return Command(self.name,
- int(self.x + addend[0]),
- int(self.y + addend[1]))
-
- def __sub__(self, addend):
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return self + (-addend[0], -addend[1])
-
- def rotate(self, angl):
- if not self.movable:
- return self
- cosa=math.cos(angl*math.pi/180)
- sina=math.sin(angl*math.pi/180)
- return Command(self.name,int(self.x*cosa-self.y*sina),int(self.y*cosa+self.x*sina))
-
- def flip(self):
- if not self.movable:
- return self
- return Command(self.name,self.y,-self.x)
-
-class Program:
-
- def __init__(self, commands=[]):
- self.commands = commands
-
- def parsefile(self, filename):
- with open(filename) as file:
- self.parse( file.read())
-
- def parse(self, code):
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [int(arg) for arg in args.split(",")] if args else []
- #print name , args
- self.commands.append(Command(name, *args))
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
-
-
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
-
-
- def __add__(self, arg):
- return Program([command + arg for command in self.commands])
-
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
-
- def __len__(self):
- return len(str(self))
-
-
- def rotate(self, angl):
- return Program([command.rotate(angl) for command in self.commands])
-
- def flip(self):
- return Program([command.flip() for command in self.commands])
-
-
-
- @property
- def xmax(self):
- return max(command.x for command in self.commands if command.x and command.movable)
- @property
- def xmin(self):
- return min(command.x for command in self.commands if command.x and command.movable)
- @property
- def ymax(self):
- return max(command.y for command in self.commands if command.y and command.movable)
- @property
- def ymin(self):
- return min(command.y for command in self.commands if command.y and command.movable)
- @property
- def center(self):
- #return 42
- return int((self.xmin+self.xmax)/2),int((self.ymin+self.ymax)/2)
- @property
- def size(self): return self.xmax-self.xmin , self.yax - self.ymin
-
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
- def centralize(self):
- return self-self.center
-
- @property
- def oob(self, pltr):
- return (self.xmax > pltr.xmax or self.xmin < pltr.xmin or self.ymin < pltr.ymin or self.ymax > pltr.ymax)
-
- def full(self,pltr):
- arg = min(pltr.winsize[0]/self.winsize[0],pltr.winsize[1]/self.winsize[1])
- return self*arg
-
-
-
-
-
-
-class Plotter:
-
- def __init__(self):
- try:
- print 'try to open Serial'
- self.ser = serial.Serial('/dev/ttyUSB0', 9600,serial.EIGHTBITS,serial.PARITY_NONE,serial.STOPBITS_ONE,15)
- print ' sending: OW;'
- self.ser.write('OW;')
- print 'OW; sent, start reading'
- s = []
-
-
- while True:
- x = self.ser.read()
- if x == "\x0d":
- break
- s.append(x)
- if not s:
- print 'I/O Fehler ist der Plotter bereit'
- print 'Gerät sagt:' + str(s)
- self.__boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- except OSError:
- self.__boundaries = -2000,-2000,2000,2000
- self.ser=None
- print "No such file or directory: '/dev/ttyUSB0'"
-
-
-
-
- @property
- def xmin(self):
- return self.__boundaries[0]
-
- @property
- def ymin(self):
- return self.__boundaries[1]
-
- @property
- def xmax(self):
- return self.__boundaries[2]
-
- @property
- def ymax(self):
- return self.__boundaries[3]
-
- @property
- def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
-
- def write(self,programm):
- self.ser.write(str(programm))
-
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
-
- def oob(self,p):
- return (p.xmax > self.xmax or p.xmin < self.xmin or p.ymin < self.ymin or p.ymax > self.ymax)
-
- @property
- def ready(self):
- try:
- print 'try to get Status'
- if not self.ser:
-
- return False
- self.ser.write('OS;')
- print 'OW; sent, start reading'
- s = []
- while True:
- x = self.ser.read()
- if x == "\x0d":
- break
- s.append(x)
- if not s:
- return False
- print s
- return True
- except OSError:
- return False
-
- def plot(self,prog):
- if (not self.oob(prog)) and self.ready:
- self.write(prog)
-
-
-
-
-
-
-
-
-plt=Plotter()
-print "p"
-p=Program()
-#print plt.winsize
-print "parsefile"
-p.parsefile("sign")
-#p=p.rotate(15)
-#print str(p)
-p=p*(-0.2,0.2)
-#p=p.flip()
-#p=p.full(plt)
-p=p.centralize()
-
-#print str(p)
-plt.plot(p)
-print p.winsize
-print len(p)
-#print str(p)
-
-
diff --git a/oldpy/cg5-class.py b/oldpy/cg5-class.py
deleted file mode 100755
index aaad81e..0000000
--- a/oldpy/cg5-class.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from __future__ import division
-import serial
-
-
-
-
-
-class Command:
-
- def __init__(self, name, *args):
- self.name = name # hpgl Command name e.g. PU, PA,
- self.args = args # list of Position args
-
- @property
- def x(self):
- return self.args[0] \
- if self.name in ("PA", "PD", "PR", "PU" ) and self.args else \
- None # Only these Commads have args
-
- @property
- def y(self):
- return self.args[1] \
- if self.name in ("PA", "PD", "PR", "PU" ) and self.args else \
- None
-
- def __len__(self):
- return len(str(self))
-
- def __str__(self):
- return self.name + ",".join(str(arg) for arg in self.args) + ";"
-
- def __mul__(self, factor):
- if self.name not in ("PA", "PD", "PR", "PU" ) or not self.args:
- return self
- if type(factor) == type(0) or type(factor) == type(0.0):
- factor = (factor, factor)
- return Command(self.name,
- int(self.x * factor[0]),
- int(self.y * factor[1]))
-
-
- def __add__(self, addend):
- if self.name not in ("PA", "PD", "PR", "PU" ) or not self.args:
- return self
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return Command(self.name,
- int(self.x + addend[0]),
- int(self.y + addend[1]))
-
- def __sub__(self, addend):
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return self + (-addend[0], -addend[1])
-
-class Program:
-
- def __init__(self, commands=[]):
- self.commands = commands
-
- def parsefile(self, filename):
- with open(filename) as file:
- self.parse( file.read())
-
- def parse(self, code):
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [int(arg) for arg in args.split(",")] if args else []
- #print name , args
- self.commands.append(Command(name, *args))
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
-
-
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
-
-
- def __add__(self, arg):
- return Program([command + arg for command in self.commands])
-
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
-
- def __len__(self):
- return len(str(self))
-
- @property
- def xmax(self):
- return max(command.x for command in self.commands if command.x)
- @property
- def xmin(self):
- return min(command.x for command in self.commands if command.x)
- @property
- def ymax(self):
- return max(command.y for command in self.commands if command.y)
- @property
- def ymin(self):
- return min(command.y for command in self.commands if command.y)
- @property
- def center(self):
- return (self.xmin+self.xmax)/2,(self.ymin+self.ymax)/2
- @property
- def size(self): return self.xmax-self.xmin , self.yax - self.ymin
-
- @property
- def winsize(self): return self.xmax-self.xmin , self.ymax - self.ymin
-
- def centralize(self):
- return self-self.center
- #arg= self.center
- #return Program([command - arg for command in self.commands])
-
- def oob(self, pltr):
-
- return (self.xmax > pltr.xmax or self.xmin < pltr.xmin or self.ymin < pltr.ymin or self.ymax > pltr.ymax)
-
- def full(self,pltr):
- arg = min(pltr.winsize[0]/self.winsize[0],pltr.winsize[1]/self.winsize[1])
- return Program([command * arg for command in self.commands])
-
-
-class Plotter:
-
- def __init__(self):
- try:
- self.ser = serial.Serial('/dev/ttyUSB0', 9600)
- self.ser.write('OW;')
- s = []
- while True:
- x = self.ser.read()
- if x == "\x0d":
- break
- s.append(x)
- if not s:
- print 'I/O Fehler ist der Plotter bereit'
- self.__boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- except OSError:
- self.__boundaries = -1000,-1000,1000,1000
-
- print "No such file or directory: '/dev/ttyUSB0'"
-
-
-
-
- @property
- def xmin(self):
- return self.__boundaries[0]
-
- @property
- def ymin(self):
- return self.__boundaries[1]
-
- @property
- def xmax(self):
- return self.__boundaries[2]
-
- @property
- def ymax(self):
- return self.__boundaries[3]
-
- @property
- def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
-
- def write(self,programm):
- self.ser.write(str(programm))
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
-
-plt=Plotter()
-p=Program()
-p.parsefile("kreis.hpgl" )
-
-
-print len(p)
-plt.write(p)
-
-
diff --git a/oldpy/cg5-class_1.py b/oldpy/cg5-class_1.py
deleted file mode 100755
index 7094b81..0000000
--- a/oldpy/cg5-class_1.py
+++ /dev/null
@@ -1,2769 +0,0 @@
-Python 2.7.9 (default, Mar 1 2015, 12:57:24)
-[GCC 4.9.2] on linux2
-Type "copyright", "credits" or "license()" for more information.
->>> ================================ RESTART ================================
->>>
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 82, in
- print p*2
- File "/home/lukas/mimaki/cg5-class.py", line 68, in __mul__
- return Program([command * arg for command in self.commands])
- File "/home/lukas/mimaki/cg5-class.py", line 26, in __mul__
- int(self.x * factor[0]),
- File "/home/lukas/mimaki/cg5-class.py", line 11, in x
- return self.args[0]
-IndexError: tuple index out of range
-
->>> ================================ RESTART ================================
->>>
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 82, in
- print p*2
- File "/home/lukas/mimaki/cg5-class.py", line 68, in __mul__
- return Program([command * arg for command in self.commands])
- File "/home/lukas/mimaki/cg5-class.py", line 26, in __mul__
- int(self.x * factor[0]),
- File "/home/lukas/mimaki/cg5-class.py", line 11, in x
- return self.args[0]
-IndexError: tuple index out of range
->>> ================================ RESTART ================================
->>>
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 82, in
- print p*2
- File "/home/lukas/mimaki/cg5-class.py", line 68, in __mul__
- return Program([command * arg for command in self.commands])
- File "/home/lukas/mimaki/cg5-class.py", line 26, in __mul__
- int(self.x * factor[0]),
- File "/home/lukas/mimaki/cg5-class.py", line 11, in x
- return self.args[0]
-IndexError: tuple index out of range
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 83, in
- print p*2
- File "/home/lukas/mimaki/cg5-class.py", line 69, in __mul__
- return Program([command * arg for command in self.commands])
- File "/home/lukas/mimaki/cg5-class.py", line 26, in __mul__
- int(self.x * factor[0]),
- File "/home/lukas/mimaki/cg5-class.py", line 11, in x
- return self.args[0]
-IndexError: tuple index out of range
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU812,3172;PD812,338;PD1552,338;PD2124,336;PD2306,336;PD2396,344;PD2490,376;PD2562,414;PD2616,452;PD2654,492;PD2680,534;PD2698,572;PD2726,640;PD2748,696;PD2764,766;PD2778,978;PD2776,1840;PD2778,2466;PD2778,2680;PD2772,2784;PD2744,2870;PD2700,2936;PD2638,2984;PD2558,3016;PD2476,3036;PD2438,3048;PD2482,3060;PD2568,3074;PD2646,3106;PD2702,3146;PD2734,3188;PD2754,3238;PD2768,3314;PD2776,3430;PD2778,3838;PD2776,4584;PD2748,5720;PD2770,5806;PD2782,5828;PD2800,5848;PD2850,5878;PD2902,5894;PD2942,5898;PD2972,5900;PD2990,5906;PD3000,5922;PD3002,5948;PD3002,6004;PD2540,6004;PD2076,6004;PD2076,4722;PD2070,3618;PD2058,3450;PD2048,3418;PD2034,3400;PD2004,3382;PD1952,3370;PD1742,3364;PD1490,3364;PD1490,4684;PD1490,6004;PD1150,6004;PD812,6004;PD812,3172;PU2026,2740;PD2078,2686;PD2076,1866;PD2070,1162;PD2058,1036;PD2050,1006;PD2038,988;PD2010,968;PD1962,954;PD1746,948;PD1490,948;PD1490,1872;PD1490,2798;PD1730,2798;PD1860,2796;PD1940,2784;PD1990,2766;PD2026,2740;PD2026,2740;PU3448,5956;PD3398,5928;PD3358,5888;PD3324,5840;PD3296,5786;PD3276,5726;PD3262,5664;PD3252,5536;PD3262,5456;PD3288,5370;PD3328,5292;PD3384,5228;PD3470,5168;PD3564,5130;PD3660,5114;PD3756,5118;PD3848,5142;PD3932,5188;PD4006,5256;PD4066,5344;PD4092,5406;PD4104,5470;PD4106,5540;PD4102,5616;PD4086,5728;PD4054,5822;PD4032,5862;PD4002,5898;PD3964,5932;PD3918,5962;PD3868,5982;PD3810,5994;PD3680,6002;PD3550,5986;PD3448,5956;PD3448,5956;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU408,1588;PD408,171;PD778,171;PD1064,170;PD1155,170;PD1200,174;PD1247,190;PD1283,209;PD1310,228;PD1329,248;PD1342,269;PD1351,288;PD1365,322;PD1376,350;PD1384,385;PD1391,491;PD1390,922;PD1391,1235;PD1391,1342;PD1388,1394;PD1374,1437;PD1352,1470;PD1321,1494;PD1281,1510;PD1240,1520;PD1221,1526;PD1243,1532;PD1286,1539;PD1325,1555;PD1353,1575;PD1369,1596;PD1379,1621;PD1386,1659;PD1390,1717;PD1391,1921;PD1390,2294;PD1376,2862;PD1387,2905;PD1393,2916;PD1402,2926;PD1427,2941;PD1453,2949;PD1473,2951;PD1488,2952;PD1497,2955;PD1502,2963;PD1503,2976;PD1503,3004;PD1272,3004;PD1040,3004;PD1040,2363;PD1037,1811;PD1031,1727;PD1026,1711;PD1019,1702;PD1004,1693;PD978,1687;PD873,1684;PD747,1684;PD747,2344;PD747,3004;PD577,3004;PD408,3004;PD408,1588;PU1015,1372;PD1041,1345;PD1040,935;PD1037,583;PD1031,520;PD1027,505;PD1021,496;PD1007,486;PD983,479;PD875,476;PD747,476;PD747,938;PD747,1401;PD867,1401;PD932,1400;PD972,1394;PD997,1385;PD1015,1372;PD1015,1372;PU1726,2980;PD1701,2966;PD1681,2946;PD1664,2922;PD1650,2895;PD1640,2865;PD1633,2834;PD1628,2770;PD1633,2730;PD1646,2687;PD1666,2648;PD1694,2616;PD1737,2586;PD1784,2567;PD1832,2559;PD1880,2561;PD1926,2573;PD1968,2596;PD2005,2630;PD2035,2674;PD2048,2705;PD2054,2737;PD2055,2772;PD2053,2810;PD2045,2866;PD2029,2913;PD2018,2933;PD2003,2951;PD1984,2968;PD1961,2983;PD1936,2993;PD1907,2999;PD1842,3003;PD1777,2995;PD1726,2980;PD1726,2980;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU404,1584;PD404,167;PD774,167;PD1060,166;PD1151,166;PD1196,170;PD1243,186;PD1279,205;PD1306,224;PD1325,244;PD1338,265;PD1347,284;PD1361,318;PD1372,346;PD1380,381;PD1387,487;PD1386,918;PD1387,1231;PD1387,1338;PD1384,1390;PD1370,1433;PD1348,1466;PD1317,1490;PD1277,1506;PD1236,1516;PD1217,1522;PD1239,1528;PD1282,1535;PD1321,1551;PD1349,1571;PD1365,1592;PD1375,1617;PD1382,1655;PD1386,1713;PD1387,1917;PD1386,2290;PD1372,2858;PD1383,2901;PD1389,2912;PD1398,2922;PD1423,2937;PD1449,2945;PD1469,2947;PD1484,2948;PD1493,2951;PD1498,2959;PD1499,2972;PD1499,3000;PD1268,3000;PD1036,3000;PD1036,2359;PD1033,1807;PD1027,1723;PD1022,1707;PD1015,1698;PD1000,1689;PD974,1683;PD869,1680;PD743,1680;PD743,2340;PD743,3000;PD573,3000;PD404,3000;PD404,1584;PU1011,1368;PD1037,1341;PD1036,931;PD1033,579;PD1027,516;PD1023,501;PD1017,492;PD1003,482;PD979,475;PD871,472;PD743,472;PD743,934;PD743,1397;PD863,1397;PD928,1396;PD968,1390;PD993,1381;PD1011,1368;PD1011,1368;PU1722,2976;PD1697,2962;PD1677,2942;PD1660,2918;PD1646,2891;PD1636,2861;PD1629,2830;PD1624,2766;PD1629,2726;PD1642,2683;PD1662,2644;PD1690,2612;PD1733,2582;PD1780,2563;PD1828,2555;PD1876,2557;PD1922,2569;PD1964,2592;PD2001,2626;PD2031,2670;PD2044,2701;PD2050,2733;PD2051,2768;PD2049,2806;PD2041,2862;PD2025,2909;PD2014,2929;PD1999,2947;PD1980,2964;PD1957,2979;PD1932,2989;PD1903,2995;PD1838,2999;PD1773,2991;PD1722,2976;PD1722,2976;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PU0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PU0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PD0,0;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 84, in
- print p/2
-TypeError: unsupported operand type(s) for /: 'instance' and 'int'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 85, in
- print p/2
-TypeError: unsupported operand type(s) for /: 'instance' and 'int'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 88, in
- print p/2
-TypeError: unsupported operand type(s) for /: 'instance' and 'int'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 94, in
- print p/2
-TypeError: unsupported operand type(s) for /: 'instance' and 'int'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU211,824;PD211,87;PD403,87;PD552,87;PD599,87;PD622,89;PD647,97;PD666,107;PD680,117;PD690,127;PD696,138;PD701,148;PD708,166;PD714,180;PD718,199;PD722,254;PD721,478;PD722,641;PD722,696;PD720,723;PD713,746;PD702,763;PD685,775;PD665,784;PD643,789;PD633,792;PD645,795;PD667,799;PD687,807;PD702,817;PD710,828;PD716,841;PD719,861;PD721,891;PD722,997;PD721,1191;PD714,1487;PD720,1509;PD723,1515;PD728,1520;PD741,1528;PD754,1532;PD764,1533;PD772,1534;PD777,1535;PD780,1539;PD780,1546;PD780,1561;PD660,1561;PD539,1561;PD539,1227;PD538,940;PD535,897;PD532,888;PD528,884;PD521,879;PD507,876;PD452,874;PD387,874;PD387,1217;PD387,1561;PD299,1561;PD211,1561;PD211,824;PU526,712;PD540,698;PD539,485;PD538,302;PD535,269;PD533,261;PD529,256;PD522,251;PD510,248;PD453,246;PD387,246;PD387,486;PD387,727;PD449,727;PD483,726;PD504,723;PD517,719;PD526,712;PD526,712;PU896,1548;PD883,1541;PD873,1530;PD864,1518;PD856,1504;PD851,1488;PD848,1472;PD845,1439;PD848,1418;PD854,1396;PD865,1375;PD879,1359;PD902,1343;PD926,1333;PD951,1329;PD976,1330;PD1000,1336;PD1022,1348;PD1041,1366;PD1057,1389;PD1063,1405;PD1067,1422;PD1067,1440;PD1066,1460;PD1062,1489;PD1054,1513;PD1048,1524;PD1040,1533;PD1030,1542;PD1018,1550;PD1005,1555;PD990,1558;PD956,1560;PD923,1556;PD896,1548;PD896,1548;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU-116,1064;PD-116,-353;PD254,-353;PD540,-354;PD631,-354;PD676,-350;PD723,-334;PD759,-315;PD786,-296;PD805,-276;PD818,-255;PD827,-236;PD841,-202;PD852,-174;PD860,-139;PD867,-33;PD866,398;PD867,711;PD867,818;PD864,870;PD850,913;PD828,946;PD797,970;PD757,986;PD716,996;PD697,1002;PD719,1008;PD762,1015;PD801,1031;PD829,1051;PD845,1072;PD855,1097;PD862,1135;PD866,1193;PD867,1397;PD866,1770;PD852,2338;PD863,2381;PD869,2392;PD878,2402;PD903,2417;PD929,2425;PD949,2427;PD964,2428;PD973,2431;PD978,2439;PD979,2452;PD979,2480;PD748,2480;PD516,2480;PD516,1839;PD513,1287;PD507,1203;PD502,1187;PD495,1178;PD480,1169;PD454,1163;PD349,1160;PD223,1160;PD223,1820;PD223,2480;PD53,2480;PD-116,2480;PD-116,1064;PU491,848;PD517,821;PD516,411;PD513,59;PD507,-4;PD503,-19;PD497,-28;PD483,-38;PD459,-45;PD351,-48;PD223,-48;PD223,414;PD223,877;PD343,877;PD408,876;PD448,870;PD473,861;PD491,848;PD491,848;PU1202,2456;PD1177,2442;PD1157,2422;PD1140,2398;PD1126,2371;PD1116,2341;PD1109,2310;PD1104,2246;PD1109,2206;PD1122,2163;PD1142,2124;PD1170,2092;PD1213,2062;PD1260,2043;PD1308,2035;PD1356,2037;PD1402,2049;PD1444,2072;PD1481,2106;PD1511,2150;PD1524,2181;PD1530,2213;PD1531,2248;PD1529,2286;PD1521,2342;PD1505,2389;PD1494,2409;PD1479,2427;PD1460,2444;PD1437,2459;PD1412,2469;PD1383,2475;PD1318,2479;PD1253,2471;PD1202,2456;PD1202,2456;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU-116,1064;PD-116,-353;PD254,-353;PD540,-354;PD631,-354;PD676,-350;PD723,-334;PD759,-315;PD786,-296;PD805,-276;PD818,-255;PD827,-236;PD841,-202;PD852,-174;PD860,-139;PD867,-33;PD866,398;PD867,711;PD867,818;PD864,870;PD850,913;PD828,946;PD797,970;PD757,986;PD716,996;PD697,1002;PD719,1008;PD762,1015;PD801,1031;PD829,1051;PD845,1072;PD855,1097;PD862,1135;PD866,1193;PD867,1397;PD866,1770;PD852,2338;PD863,2381;PD869,2392;PD878,2402;PD903,2417;PD929,2425;PD949,2427;PD964,2428;PD973,2431;PD978,2439;PD979,2452;PD979,2480;PD748,2480;PD516,2480;PD516,1839;PD513,1287;PD507,1203;PD502,1187;PD495,1178;PD480,1169;PD454,1163;PD349,1160;PD223,1160;PD223,1820;PD223,2480;PD53,2480;PD-116,2480;PD-116,1064;PU491,848;PD517,821;PD516,411;PD513,59;PD507,-4;PD503,-19;PD497,-28;PD483,-38;PD459,-45;PD351,-48;PD223,-48;PD223,414;PD223,877;PD343,877;PD408,876;PD448,870;PD473,861;PD491,848;PD491,848;PU1202,2456;PD1177,2442;PD1157,2422;PD1140,2398;PD1126,2371;PD1116,2341;PD1109,2310;PD1104,2246;PD1109,2206;PD1122,2163;PD1142,2124;PD1170,2092;PD1213,2062;PD1260,2043;PD1308,2035;PD1356,2037;PD1402,2049;PD1444,2072;PD1481,2106;PD1511,2150;PD1524,2181;PD1530,2213;PD1531,2248;PD1529,2286;PD1521,2342;PD1505,2389;PD1494,2409;PD1479,2427;PD1460,2444;PD1437,2459;PD1412,2469;PD1383,2475;PD1318,2479;PD1253,2471;PD1202,2456;PD1202,2456;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-IN;SP1;PU-116,1064;PD-116,-353;PD254,-353;PD540,-354;PD631,-354;PD676,-350;PD723,-334;PD759,-315;PD786,-296;PD805,-276;PD818,-255;PD827,-236;PD841,-202;PD852,-174;PD860,-139;PD867,-33;PD866,398;PD867,711;PD867,818;PD864,870;PD850,913;PD828,946;PD797,970;PD757,986;PD716,996;PD697,1002;PD719,1008;PD762,1015;PD801,1031;PD829,1051;PD845,1072;PD855,1097;PD862,1135;PD866,1193;PD867,1397;PD866,1770;PD852,2338;PD863,2381;PD869,2392;PD878,2402;PD903,2417;PD929,2425;PD949,2427;PD964,2428;PD973,2431;PD978,2439;PD979,2452;PD979,2480;PD748,2480;PD516,2480;PD516,1839;PD513,1287;PD507,1203;PD502,1187;PD495,1178;PD480,1169;PD454,1163;PD349,1160;PD223,1160;PD223,1820;PD223,2480;PD53,2480;PD-116,2480;PD-116,1064;PU491,848;PD517,821;PD516,411;PD513,59;PD507,-4;PD503,-19;PD497,-28;PD483,-38;PD459,-45;PD351,-48;PD223,-48;PD223,414;PD223,877;PD343,877;PD408,876;PD448,870;PD473,861;PD491,848;PD491,848;PU1202,2456;PD1177,2442;PD1157,2422;PD1140,2398;PD1126,2371;PD1116,2341;PD1109,2310;PD1104,2246;PD1109,2206;PD1122,2163;PD1142,2124;PD1170,2092;PD1213,2062;PD1260,2043;PD1308,2035;PD1356,2037;PD1402,2049;PD1444,2072;PD1481,2106;PD1511,2150;PD1524,2181;PD1530,2213;PD1531,2248;PD1529,2286;PD1521,2342;PD1505,2389;PD1494,2409;PD1479,2427;PD1460,2444;PD1437,2459;PD1412,2469;PD1383,2475;PD1318,2479;PD1253,2471;PD1202,2456;PD1202,2456;PU;
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 98, in
- print p.center
- File "/home/lukas/mimaki/cg5-class.py", line 91, in center
- return (self.xmin+self.ymin)/2,(self.ymin+self.ymax)/2
-TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-3002
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 100, in
- print p.center
- File "/home/lukas/mimaki/cg5-class.py", line 91, in center
- return (self.xmin+self.ymin)/2,(self.ymin+self.ymax)/2
-TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-3002
-None
-None
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 102, in
- print p.center
- File "/home/lukas/mimaki/cg5-class.py", line 91, in center
- return (self.xmin+self.ymin)/2,(self.ymin+self.ymax)/2
-TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 99, in
- print p.ymax
- File "/home/lukas/mimaki/cg5-class.py", line 85, in ymax
- return max(command.y for command in self.commands if commad.x)
- File "/home/lukas/mimaki/cg5-class.py", line 85, in
- return max(command.y for command in self.commands if commad.x)
-NameError: global name 'commad' is not defined
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-3002
-None
-168
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 102, in
- print p.center
- File "/home/lukas/mimaki/cg5-class.py", line 91, in center
- return (self.xmin+self.ymin)/2,(self.ymin+self.ymax)/2
-TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-3002
-406
-168
-(287.0, 1585.0)
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-xmax 2053
-2053
-3002
-406
-168
-(287.0, 1585.0)
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 118, in
- print getWin()
-NameError: name 'getWin' is not defined
->>> ================================ RESTART ================================
->>>
-IN []
-SP [1]
-PU [406, 1586]
-PD [406, 169]
-PD [776, 169]
-PD [1062, 168]
-PD [1153, 168]
-PD [1198, 172]
-PD [1245, 188]
-PD [1281, 207]
-PD [1308, 226]
-PD [1327, 246]
-PD [1340, 267]
-PD [1349, 286]
-PD [1363, 320]
-PD [1374, 348]
-PD [1382, 383]
-PD [1389, 489]
-PD [1388, 920]
-PD [1389, 1233]
-PD [1389, 1340]
-PD [1386, 1392]
-PD [1372, 1435]
-PD [1350, 1468]
-PD [1319, 1492]
-PD [1279, 1508]
-PD [1238, 1518]
-PD [1219, 1524]
-PD [1241, 1530]
-PD [1284, 1537]
-PD [1323, 1553]
-PD [1351, 1573]
-PD [1367, 1594]
-PD [1377, 1619]
-PD [1384, 1657]
-PD [1388, 1715]
-PD [1389, 1919]
-PD [1388, 2292]
-PD [1374, 2860]
-PD [1385, 2903]
-PD [1391, 2914]
-PD [1400, 2924]
-PD [1425, 2939]
-PD [1451, 2947]
-PD [1471, 2949]
-PD [1486, 2950]
-PD [1495, 2953]
-PD [1500, 2961]
-PD [1501, 2974]
-PD [1501, 3002]
-PD [1270, 3002]
-PD [1038, 3002]
-PD [1038, 2361]
-PD [1035, 1809]
-PD [1029, 1725]
-PD [1024, 1709]
-PD [1017, 1700]
-PD [1002, 1691]
-PD [976, 1685]
-PD [871, 1682]
-PD [745, 1682]
-PD [745, 2342]
-PD [745, 3002]
-PD [575, 3002]
-PD [406, 3002]
-PD [406, 1586]
-PU [1013, 1370]
-PD [1039, 1343]
-PD [1038, 933]
-PD [1035, 581]
-PD [1029, 518]
-PD [1025, 503]
-PD [1019, 494]
-PD [1005, 484]
-PD [981, 477]
-PD [873, 474]
-PD [745, 474]
-PD [745, 936]
-PD [745, 1399]
-PD [865, 1399]
-PD [930, 1398]
-PD [970, 1392]
-PD [995, 1383]
-PD [1013, 1370]
-PD [1013, 1370]
-PU [1724, 2978]
-PD [1699, 2964]
-PD [1679, 2944]
-PD [1662, 2920]
-PD [1648, 2893]
-PD [1638, 2863]
-PD [1631, 2832]
-PD [1626, 2768]
-PD [1631, 2728]
-PD [1644, 2685]
-PD [1664, 2646]
-PD [1692, 2614]
-PD [1735, 2584]
-PD [1782, 2565]
-PD [1830, 2557]
-PD [1878, 2559]
-PD [1924, 2571]
-PD [1966, 2594]
-PD [2003, 2628]
-PD [2033, 2672]
-PD [2046, 2703]
-PD [2052, 2735]
-PD [2053, 2770]
-PD [2051, 2808]
-PD [2043, 2864]
-PD [2027, 2911]
-PD [2016, 2931]
-PD [2001, 2949]
-PD [1982, 2966]
-PD [1959, 2981]
-PD [1934, 2991]
-PD [1905, 2997]
-PD [1840, 3001]
-PD [1775, 2993]
-PD [1724, 2978]
-PD [1724, 2978]
-PU []
-IN;SP1;PU2406,2586;PD2406,1169;PD2776,1169;PD3062,1168;PD3153,1168;PD3198,1172;PD3245,1188;PD3281,1207;PD3308,1226;PD3327,1246;PD3340,1267;PD3349,1286;PD3363,1320;PD3374,1348;PD3382,1383;PD3389,1489;PD3388,1920;PD3389,2233;PD3389,2340;PD3386,2392;PD3372,2435;PD3350,2468;PD3319,2492;PD3279,2508;PD3238,2518;PD3219,2524;PD3241,2530;PD3284,2537;PD3323,2553;PD3351,2573;PD3367,2594;PD3377,2619;PD3384,2657;PD3388,2715;PD3389,2919;PD3388,3292;PD3374,3860;PD3385,3903;PD3391,3914;PD3400,3924;PD3425,3939;PD3451,3947;PD3471,3949;PD3486,3950;PD3495,3953;PD3500,3961;PD3501,3974;PD3501,4002;PD3270,4002;PD3038,4002;PD3038,3361;PD3035,2809;PD3029,2725;PD3024,2709;PD3017,2700;PD3002,2691;PD2976,2685;PD2871,2682;PD2745,2682;PD2745,3342;PD2745,4002;PD2575,4002;PD2406,4002;PD2406,2586;PU3013,2370;PD3039,2343;PD3038,1933;PD3035,1581;PD3029,1518;PD3025,1503;PD3019,1494;PD3005,1484;PD2981,1477;PD2873,1474;PD2745,1474;PD2745,1936;PD2745,2399;PD2865,2399;PD2930,2398;PD2970,2392;PD2995,2383;PD3013,2370;PD3013,2370;PU3724,3978;PD3699,3964;PD3679,3944;PD3662,3920;PD3648,3893;PD3638,3863;PD3631,3832;PD3626,3768;PD3631,3728;PD3644,3685;PD3664,3646;PD3692,3614;PD3735,3584;PD3782,3565;PD3830,3557;PD3878,3559;PD3924,3571;PD3966,3594;PD4003,3628;PD4033,3672;PD4046,3703;PD4052,3735;PD4053,3770;PD4051,3808;PD4043,3864;PD4027,3911;PD4016,3931;PD4001,3949;PD3982,3966;PD3959,3981;PD3934,3991;PD3905,3997;PD3840,4001;PD3775,3993;PD3724,3978;PD3724,3978;PU;
-2053
-3002
-406
-168
-(287.0, 1585.0)
-
-Traceback (most recent call last):
- File "/home/lukas/mimaki/cg5-class.py", line 119, in
- print getWin()
-NameError: name 'getWin' is not defined
->>>
diff --git a/oldpy/old-cg5.py b/oldpy/old-cg5.py
deleted file mode 100755
index 5ff5905..0000000
--- a/oldpy/old-cg5.py
+++ /dev/null
@@ -1,92 +0,0 @@
-
-import serial
-
-def getWin():
- ser = serial.Serial('/dev/ttyUSB0', 9600)
- ser.write('OW;')
- s=[]
- if not s:
- print 'Datei Fehler'
- while True:
- x=ser.read()
- if x == "\x0d":
- break
- s.append(x)
- return tuple(int(x) for x in "".join(s).split(","))
-
-def parse(filename):
- with open(filename) as file:
- contents = file.read()
- commands = []
- for command in contents.split(";"):
- name, args = command[:2], command[2:]
- args = [int(arg) for arg in args.split(",")] if args else []
- commands.append((name, args))
- return commands
-
-def compile(commands):
- return ";".join(name + ",".join(str(arg) for arg in args)
- for name, args in commands)
-
-def scale(commands, factor):
- for name,args in commands:
- if name in ("PU","PD","PA","PR"):
- for i in range(len(args)):
- args[i] = int(args[i]*factor)
- return commands
-
-def left(commands, left):
- for name,args in commands:
- if name in ("PU","PD","PA","PR"):
- if len(args):
- args[1] +=left
- return commands
-
-def up(commands, up):
- for name,args in commands:
- if name in ("PU","PD","PA","PR"):
- if len(args):
- args[0] +=up
- return commands
-
-
-def oob(commands):
- xmin, ymin, xmax, ymax = getWin()
- for name,args in commands:
- if name in ("PU","PD","PA","PR"):
- if xmin < args[0] 1:
- if args[0] > maxx:
- maxx = args[0]
- if args[0] < minx:
- minx = args[0]
- if args[1] < miny:
- miny = args[1]
- if args[1] > maxy:
- maxy =args[1]
- xcent= int((xmax-xmin)/2)
- ycent= int((ymax-ymin)/2)
- centy= int((maxy-miny)/2)
- centx= int((maxx-minx)/2)
- return up(left(command,centy-ycent),centx-xcent)
-
-
-
-out = center(scale(parse("vishnu.hpgl"),2.5))
-print out
-print'test'
-print oob(out)
-
-
-# print name, args
-ser = serial.Serial('/dev/ttyUSB0', 9600)
-if not oob(out):
- ser.write(compile(out))
diff --git a/oldpy/roll.py b/oldpy/roll.py
deleted file mode 100755
index 773eaec..0000000
--- a/oldpy/roll.py
+++ /dev/null
@@ -1,255 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import division
-import serial
-import math
-
-
-
-
-
-class Command:
- inicoms= ("IN", "SP", "LT")
- scalecoms=("PA", "PD", "PR", "PU", "CI" )
- movecoms=("PA", "PD", "PR", "PU" )
-
- def __init__(self, name, *args):
- self.name = name # hpgl Command name e.g. PU, PA,
- self.args = args # list of Position args
-
- @property
- def scalable(self):
- return True \
- if self.name in Command.scalecoms and self.args else \
- False
- @property
- def movable(self):
- return True \
- if self.name in Command.movecoms and self.args else \
- False
-
- @property
- def x(self):
- return self.args[0] \
- if self.movable else\
- None
-
- @property
- def y(self):
- return self.args[1] \
- if self.movable else\
- None
-
- def __len__(self):
- return len(str(self))
-
- def __str__(self):
- return self.name + ",".join(str(arg) for arg in self.args) + ";"
-
- def __mul__(self, factor):
- if not self.scalable:
- return self
- if type(factor) == type(0) or type(factor) == type(0.0):
- factor = (factor, factor)
- return Command(self.name,
- int(self.args[0] * factor[0]),
- int(self.args[1] * factor[1])) \
- if len(self.args)>1 else\
- Command(self.name,int(self.args[0]*factor[0]) )
-
- def __add__(self, addend):
- if not self.movable:
- return self
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return Command(self.name,
- int(self.x + addend[0]),
- int(self.y + addend[1]))
-
- def __sub__(self, addend):
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return self + (-addend[0], -addend[1])
-
- def rotate(self, angl):
- if not self.movable:
- return self
- cosa=math.cos(angl*math.pi/180)
- sina=math.sin(angl*math.pi/180)
- return Command(self.name,int(self.x*cosa-self.y*sina),int(self.y*cosa+self.x*sina))
-
- def flip(self):
- if not self.movable:
- return self
- return Command(self.name,self.y,-self.x)
-
-class Program:
-
- def __init__(self, commands=[]):
- self.commands = commands
-
- def parsefile(self, filename):
- with open(filename) as file:
- self.parse( file.read())
-
- def parse(self, code):
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [int(arg) for arg in args.split(",")] if args else []
- #print name , args
- self.commands.append(Command(name, *args))
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
-
-
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
-
-
- def __add__(self, arg):
- return Program([command + arg for command in self.commands])
-
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
-
- def __len__(self):
- return len(str(self))
-
- def rotate(self, angl):
- return Program([command.rotate(angl) for command in self.commands])
-
- def flip(self):
- return Program([command.flip() for command in self.commands])
-
-
-
- @property
- def xmax(self):
- return max(command.x for command in self.commands if command.x and command.movable)
- @property
- def xmin(self):
- return min(command.x for command in self.commands if command.x and command.movable)
- @property
- def ymax(self):
- return max(command.y for command in self.commands if command.y and command.movable)
- @property
- def ymin(self):
- return min(command.y for command in self.commands if command.y and command.movable)
- @property
- def center(self):
- return int((self.xmin+self.xmax)/2),int((self.ymin+self.ymax)/2)
- @property
- def size(self): return self.xmax-self.xmin , self.yax - self.ymin
-
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
-class Plotter:
-
- def __init__(self):
-
- self.p0incenter = False
- s=self.getoutput('OW;')
- print s
- if not s:
- self.__boundaries = -2000,-2000,2000,2000
- self.ser=None
- else:
- self.__boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- def getoutput(self,outstr):
- try:
- self.ser = serial.Serial('/dev/ttyUSB0',timeout=15)
- print 'try to get Status'
- if not self.ser:
- print 'Plotter not available'
- return None
- self.ser.write(outstr)
- print 'device busy'
- s = []
- while True:
- x = self.ser.read()
-
- if x == "\x0d" or not x:
- break
- s.append(x)
- return ''.join(s)
- except OSError:
- return None
- @property
- def xmin(self):
- return self.__boundaries[0]
-
- @property
- def ymin(self):
- return self.__boundaries[1]
-
- @property
- def xmax(self):
- return self.__boundaries[2]
-
- @property
- def ymax(self):
- return self.__boundaries[3]
-
- @property
- def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
-
- def write(self,programm):
- self.ser.write(str(programm))
-
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
- def oob(self, prog):
- return (prog.xmax > self.xmax or prog.xmin < self.xmin or prog.ymin < self.ymin or prog.ymax > self.ymax)
-
- def full(self,prog):
- arg = min(self.winsize[0]/prog.winsize[0],self.winsize[1]/prog.winsize[1])
- print arg
- return prog*arg
-
- def plot(self,prog):
- if (not self.oob(prog)) and self.ready:
- self.write(prog)
-
- if self.oob(prog):
- print 'programm out of bound'
- if not self.ready:
- print 'device not ready'
-
- def centralize(self,prog):
- return prog-prog.center \
- if self.p0incenter else \
- prog-(prog.xmin,prog.ymin)
- @property
- def ready(self):
- return bool(self.getoutput('OS;'))
-
-
-
-
-
-plt=Plotter()
-p=Program()
-p.parsefile("hpgl/nmk.hpgl")
-print p.xmin,p.xmax,p.ymin,p.ymax
-p=p.flip()
-p=p*(1,-1)
-p=plt.full(p)
-p=plt.centralize(p)
-
-print 'Programm Größe' p.winsize
-print 'Program Abmessung' p.xmin,p.xmax,p.ymin,p.ymax
-print 'Programm Center' p.center
-print ' Plotter bereit' plt.ready
-#print str(p)
-plt.plot(p)
-
-print len(p)
-#print str(p)
-
-
diff --git a/1.hpgl b/output/hpgl/1.hpgl
similarity index 100%
rename from 1.hpgl
rename to output/hpgl/1.hpgl
diff --git a/2.hpgl b/output/hpgl/2.hpgl
similarity index 100%
rename from 2.hpgl
rename to output/hpgl/2.hpgl
diff --git a/3.hpgl b/output/hpgl/3.hpgl
similarity index 100%
rename from 3.hpgl
rename to output/hpgl/3.hpgl
diff --git a/hpgl/ArsOpifex.hpgl b/output/hpgl/ArsOpifex.hpgl
similarity index 100%
rename from hpgl/ArsOpifex.hpgl
rename to output/hpgl/ArsOpifex.hpgl
diff --git a/hpgl/GT.hpgl b/output/hpgl/GT.hpgl
similarity index 100%
rename from hpgl/GT.hpgl
rename to output/hpgl/GT.hpgl
diff --git a/hpgl/Lars.hpgl b/output/hpgl/Lars.hpgl
similarity index 100%
rename from hpgl/Lars.hpgl
rename to output/hpgl/Lars.hpgl
diff --git a/hpgl/Lars.plt b/output/hpgl/Lars.plt
similarity index 100%
rename from hpgl/Lars.plt
rename to output/hpgl/Lars.plt
diff --git a/hpgl/Naked.hpgl b/output/hpgl/Naked.hpgl
similarity index 100%
rename from hpgl/Naked.hpgl
rename to output/hpgl/Naked.hpgl
diff --git a/hpgl/Suempfonie.hpgl b/output/hpgl/Suempfonie.hpgl
similarity index 100%
rename from hpgl/Suempfonie.hpgl
rename to output/hpgl/Suempfonie.hpgl
diff --git a/TU.hpgl b/output/hpgl/TU.hpgl
similarity index 100%
rename from TU.hpgl
rename to output/hpgl/TU.hpgl
diff --git a/hpgl/Woman.hpgl b/output/hpgl/Woman.hpgl
similarity index 100%
rename from hpgl/Woman.hpgl
rename to output/hpgl/Woman.hpgl
diff --git a/hpgl/Zaskar.hpgl b/output/hpgl/Zaskar.hpgl
similarity index 100%
rename from hpgl/Zaskar.hpgl
rename to output/hpgl/Zaskar.hpgl
diff --git a/refac/Zeichnung.hpgl b/output/hpgl/Zeichnung.hpgl
similarity index 100%
rename from refac/Zeichnung.hpgl
rename to output/hpgl/Zeichnung.hpgl
diff --git a/refac/Zeichnung2.hpgl b/output/hpgl/Zeichnung2.hpgl
similarity index 100%
rename from refac/Zeichnung2.hpgl
rename to output/hpgl/Zeichnung2.hpgl
diff --git a/ag.hpgl b/output/hpgl/ag.hpgl
similarity index 100%
rename from ag.hpgl
rename to output/hpgl/ag.hpgl
diff --git a/amag.hpgl b/output/hpgl/amag.hpgl
similarity index 100%
rename from amag.hpgl
rename to output/hpgl/amag.hpgl
diff --git a/hpgl/clit.hpgl b/output/hpgl/clit.hpgl
similarity index 100%
rename from hpgl/clit.hpgl
rename to output/hpgl/clit.hpgl
diff --git a/hpgl/cross.hpgl b/output/hpgl/cross.hpgl
similarity index 100%
rename from hpgl/cross.hpgl
rename to output/hpgl/cross.hpgl
diff --git a/devil.hpgl b/output/hpgl/devil.hpgl
similarity index 100%
rename from devil.hpgl
rename to output/hpgl/devil.hpgl
diff --git a/hpgl/dot.hpgl b/output/hpgl/dot.hpgl
similarity index 100%
rename from hpgl/dot.hpgl
rename to output/hpgl/dot.hpgl
diff --git a/hpgl/fhain.hpgl b/output/hpgl/fhain.hpgl
similarity index 100%
rename from hpgl/fhain.hpgl
rename to output/hpgl/fhain.hpgl
diff --git a/hpgl/fuu.hpgl b/output/hpgl/fuu.hpgl
similarity index 100%
rename from hpgl/fuu.hpgl
rename to output/hpgl/fuu.hpgl
diff --git a/hpgl/fuufuu.hpgl b/output/hpgl/fuufuu.hpgl
similarity index 100%
rename from hpgl/fuufuu.hpgl
rename to output/hpgl/fuufuu.hpgl
diff --git a/hpgl/janos.hpgl b/output/hpgl/janos.hpgl
similarity index 100%
rename from hpgl/janos.hpgl
rename to output/hpgl/janos.hpgl
diff --git a/hpgl/kamel.hpgl b/output/hpgl/kamel.hpgl
similarity index 100%
rename from hpgl/kamel.hpgl
rename to output/hpgl/kamel.hpgl
diff --git a/hpgl/kanamen.hpgl b/output/hpgl/kanamen.hpgl
similarity index 100%
rename from hpgl/kanamen.hpgl
rename to output/hpgl/kanamen.hpgl
diff --git a/hpgl/karmen.hpgl b/output/hpgl/karmen.hpgl
similarity index 100%
rename from hpgl/karmen.hpgl
rename to output/hpgl/karmen.hpgl
diff --git a/hpgl/kreis.hpgl b/output/hpgl/kreis.hpgl
similarity index 100%
rename from hpgl/kreis.hpgl
rename to output/hpgl/kreis.hpgl
diff --git a/hpgl/logo-neos.hpgl b/output/hpgl/logo-neos.hpgl
similarity index 100%
rename from hpgl/logo-neos.hpgl
rename to output/hpgl/logo-neos.hpgl
diff --git a/hpgl/logo-tec.hpgl b/output/hpgl/logo-tec.hpgl
similarity index 100%
rename from hpgl/logo-tec.hpgl
rename to output/hpgl/logo-tec.hpgl
diff --git a/hpgl/luz.hpgl b/output/hpgl/luz.hpgl
similarity index 100%
rename from hpgl/luz.hpgl
rename to output/hpgl/luz.hpgl
diff --git a/hpgl/moritz.hpgl b/output/hpgl/moritz.hpgl
similarity index 100%
rename from hpgl/moritz.hpgl
rename to output/hpgl/moritz.hpgl
diff --git a/neos.hpgl b/output/hpgl/neos.hpgl
similarity index 100%
rename from neos.hpgl
rename to output/hpgl/neos.hpgl
diff --git a/hpgl/nmk.hpgl b/output/hpgl/nmk.hpgl
similarity index 100%
rename from hpgl/nmk.hpgl
rename to output/hpgl/nmk.hpgl
diff --git a/hpgl/plane.hpgl b/output/hpgl/plane.hpgl
similarity index 100%
rename from hpgl/plane.hpgl
rename to output/hpgl/plane.hpgl
diff --git a/hpgl/r1.hpgl b/output/hpgl/r1.hpgl
similarity index 100%
rename from hpgl/r1.hpgl
rename to output/hpgl/r1.hpgl
diff --git a/hpgl/r2.hpgl b/output/hpgl/r2.hpgl
similarity index 100%
rename from hpgl/r2.hpgl
rename to output/hpgl/r2.hpgl
diff --git a/robert.hpgl b/output/hpgl/robert.hpgl
similarity index 100%
rename from robert.hpgl
rename to output/hpgl/robert.hpgl
diff --git a/hpgl/sign b/output/hpgl/sign
similarity index 100%
rename from hpgl/sign
rename to output/hpgl/sign
diff --git a/hpgl/sticker.hpgl b/output/hpgl/sticker.hpgl
similarity index 100%
rename from hpgl/sticker.hpgl
rename to output/hpgl/sticker.hpgl
diff --git a/tec.hpgl b/output/hpgl/tec.hpgl
similarity index 100%
rename from tec.hpgl
rename to output/hpgl/tec.hpgl
diff --git a/hpgl/tiger.hpgl b/output/hpgl/tiger.hpgl
similarity index 100%
rename from hpgl/tiger.hpgl
rename to output/hpgl/tiger.hpgl
diff --git a/hpgl/vishnu.hpgl b/output/hpgl/vishnu.hpgl
similarity index 100%
rename from hpgl/vishnu.hpgl
rename to output/hpgl/vishnu.hpgl
diff --git a/svg/150720_aufkleber_lang.pdf b/output/svg/150720_aufkleber_lang.pdf
similarity index 100%
rename from svg/150720_aufkleber_lang.pdf
rename to output/svg/150720_aufkleber_lang.pdf
diff --git a/svg/ArsOpifex.png b/output/svg/ArsOpifex.png
similarity index 100%
rename from svg/ArsOpifex.png
rename to output/svg/ArsOpifex.png
diff --git a/svg/Cross-Pattee-Heraldry.svg b/output/svg/Cross-Pattee-Heraldry.svg
similarity index 100%
rename from svg/Cross-Pattee-Heraldry.svg
rename to output/svg/Cross-Pattee-Heraldry.svg
diff --git a/svg/Emblem_of_borough_Friedrichshain-Kreuzberg.svg b/output/svg/Emblem_of_borough_Friedrichshain-Kreuzberg.svg
similarity index 100%
rename from svg/Emblem_of_borough_Friedrichshain-Kreuzberg.svg
rename to output/svg/Emblem_of_borough_Friedrichshain-Kreuzberg.svg
diff --git a/svg/Lars.svg b/output/svg/Lars.svg
similarity index 100%
rename from svg/Lars.svg
rename to output/svg/Lars.svg
diff --git a/hpgl/Suempfonie.svg b/output/svg/Suempfonie.svg
similarity index 100%
rename from hpgl/Suempfonie.svg
rename to output/svg/Suempfonie.svg
diff --git a/hpgl/Sümpfonie.svg b/output/svg/Sümpfonie.svg
similarity index 100%
rename from hpgl/Sümpfonie.svg
rename to output/svg/Sümpfonie.svg
diff --git a/svg/Tiger_Beer.svg b/output/svg/Tiger_Beer.svg
similarity index 100%
rename from svg/Tiger_Beer.svg
rename to output/svg/Tiger_Beer.svg
diff --git a/svg/Woman.svg b/output/svg/Woman.svg
similarity index 100%
rename from svg/Woman.svg
rename to output/svg/Woman.svg
diff --git a/amag.svg b/output/svg/amag.svg
similarity index 100%
rename from amag.svg
rename to output/svg/amag.svg
diff --git a/svg/art.jpeg b/output/svg/art.jpeg
similarity index 100%
rename from svg/art.jpeg
rename to output/svg/art.jpeg
diff --git a/janos.svg b/output/svg/janos.svg
similarity index 100%
rename from janos.svg
rename to output/svg/janos.svg
diff --git a/moritz.svg b/output/svg/moritz.svg
similarity index 100%
rename from moritz.svg
rename to output/svg/moritz.svg
diff --git a/svg/nmk.png b/output/svg/nmk.png
similarity index 100%
rename from svg/nmk.png
rename to output/svg/nmk.png
diff --git a/svg/nmk.svg b/output/svg/nmk.svg
similarity index 100%
rename from svg/nmk.svg
rename to output/svg/nmk.svg
diff --git a/robert.svg b/output/svg/robert.svg
similarity index 100%
rename from robert.svg
rename to output/svg/robert.svg
diff --git a/hpgl/sticker.svg b/output/svg/sticker.svg
similarity index 100%
rename from hpgl/sticker.svg
rename to output/svg/sticker.svg
diff --git a/svg/vishnu.svg b/output/svg/vishnu.svg
similarity index 100%
rename from svg/vishnu.svg
rename to output/svg/vishnu.svg
diff --git a/refac/Command.py b/refac/Command.py
deleted file mode 100755
index e1d32cd..0000000
--- a/refac/Command.py
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-# -*- coding: utf-8 -*-
-
-import math
-
-
-class Command:
- inicoms= ("IN", "SP", "LT") # nicht benutzt
- scalecoms=("PA", "PD", "PR", "PU", "CI" ) # Liste skalierbarer HPGL-Befehle
- movecoms=("PA", "PD", "PU" ) # Liste verschiebbarer HPGL-Befehle#
- abscoms=("PA", "PD", "PU" )
- relcoms=("PR")
- arccoms=("CI", "AA")
-
- def __init__(self, name, *args):
- self.name = name # Befehlname
- self.args = args # Argsliste
-
- @property
- def scalable(self):
- return self.name in Command.scalecoms and self.args
-
- @property
- def movable(self):
- return self.name in Command.movecoms and self.args
-
- @property
- def x(self):
- #Baustelle da es Befehle gibt die mehrere Args haben
- return self.args[0] if self.args else None
-
- @property
- def y(self):
- return self.args[-1] if self.args else None
-
- def __trunc__(self):
- return Command(self.name,*[int(arg) for arg in self.args])
-
- def __len__(self):
- return len(str(self)) # Byte-Lnge des Befehls
-
- def __str__(self):
- return self.name + ",".join(str(int(arg)) for arg in self.args) + ";"
-
- def __mul__(self, factor): # multipliziert falls skalable mit factor
- if not self.scalable:
- return self
- if type(factor) == type(0) or type(factor) == type(0.0):
- # Faktor kann skalar oder Tuple sein
- factor = (factor, factor)
- return Command(self.name,(self.args[0] * factor[0]),(self.args[1] * factor[1])) \
- if len(self.args)>1 else\
- Command(self.name,(self.args[0]*factor[0]) ) # wichtig fr Befehle mit nur einem Argument
-
- def __add__(self, addend):
- if not self.movable:
- return self
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- #print( "ADD ", self.name )
- return Command(self.name,(self.x + addend[0]),(self.y + addend[1]))
-
- def __sub__(self, addend):
- if type(addend) == type(0) or type(addend) == type(0.0):
- addend = (addend, addend)
- return self + (-addend[0], -addend[1])
-
- def rotate(self, angl): # multiplikation mit Rot-Matrix
- if not self.movable:
- return self
- cosa=math.cos(angl*math.pi/180)
- sina=math.sin(angl*math.pi/180)
- return Command(self.name,(self.x*cosa-self.y*sina),(self.y*cosa+self.x*sina))
-
- def flip(self): # Spiegelung
- if not self.movable:
- return self
- return Command(self.name,self.x,-self.y)
diff --git a/refac/Command.pyc b/refac/Command.pyc
deleted file mode 100644
index 1b4e649..0000000
Binary files a/refac/Command.pyc and /dev/null differ
diff --git a/refac/K18650.pyc b/refac/K18650.pyc
deleted file mode 100755
index 6f9e2f8..0000000
Binary files a/refac/K18650.pyc and /dev/null differ
diff --git a/refac/Kleber.pyc b/refac/Kleber.pyc
deleted file mode 100755
index 4a158ec..0000000
Binary files a/refac/Kleber.pyc and /dev/null differ
diff --git a/refac/Plotter.py b/refac/Plotter.py
deleted file mode 100755
index c35d64d..0000000
--- a/refac/Plotter.py
+++ /dev/null
@@ -1,84 +0,0 @@
-from __future__ import division
-import serial
-
-class Plotter:
-
- def __init__(self,boundaries=None):
- self.boundaries=boundaries
- self.p0incenter = False
- if not boundaries:
- s=self.getoutput(b'OW;')
- print(s)
- if not s:
- self.ser=None
- else:
- self.boundaries = tuple(int(x) for x in "".join(s).split(","))
-
- def getoutput(self,outstr):
- try:
- self.ser = serial.Serial('/dev/ttyUSB0',timeout=15)
- print ('try to get Status')
- if not self.ser:
- print ('Plotter not available')
- return None
- self.ser.write(outstr)
- print ('device busy')
- s = []
- while True:
- x = self.ser.read()
-
- if x == b"\x0d" or not x:
- break
- s.append(x)
- return b''.join(s).decode()
- except OSError:
- return None
- @property
- def xmin(self):
- return self.boundaries[0]
-
- @property
- def ymin(self):
- return self.boundaries[1]
-
- @property
- def xmax(self):
- return self.boundaries[2]
-
- @property
- def ymax(self):
- return self.boundaries[3]
-
- @property
- def center(self):
- return (self.xmin + self.xmax)/2, (self.ymin + self.ymax)/2
-
- def write(self,programm):
- self.ser.write(str(programm).encode())
-
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
-
- def oob(self, prog):
- return (prog.xmax > self.xmax or prog.xmin < self.xmin or prog.ymin < self.ymin or prog.ymax > self.ymax)
-
-
-
- def plot(self,prog):
- if self.ready and (not self.oob(prog)) :
- self.write(prog)
-
- if self.oob(prog):
- print ('programm out of bound')
- if not self.ready:
- print ('device not ready')
-
-
- def centralize(self,prog):
- return prog-prog.center \
- if self.p0incenter else \
- prog-(prog.xmin,prog.ymin)
- @property
- def ready(self):
- return bool(self.getoutput('OS;'))
diff --git a/refac/Plotter.pyc b/refac/Plotter.pyc
deleted file mode 100644
index 17e618f..0000000
Binary files a/refac/Plotter.pyc and /dev/null differ
diff --git a/refac/Program.py b/refac/Program.py
deleted file mode 100755
index e0f70dd..0000000
--- a/refac/Program.py
+++ /dev/null
@@ -1,127 +0,0 @@
-
-import math
-from Command import *
-import tkinter as tk
-
-class Program:
-
- def __init__(self, commands=None):
- self.commands = commands
- self.active=True
- self.visible=False
- self.filename=''
- if commands:
- self.xmin,self.ymin,self.xmax,self.ymax=self.__simulate()
-
- def __simulate(self):
- (x,y) = (0,0)
- xy=[]
- for command in self.commands :
- if not command.args:
- continue
- elif command.name in command.abscoms:
- x,y=command.x,command.y
- xy.append((x,y))
- elif command.name in command.relcoms:
- x,y =x+command.x,y+command.y
- xy.append((x,y))
- elif command.name in command.arccoms:
- xy+=[(x+command.x,y+command.x) , ( x-command.x,y-command.x)]
- return [m([v[i] for v in xy]) for m, i in ((min,0),(min,1),(max,0),(max,1))]
-
- @staticmethod
- def parsefile(filename):
- with open(filename) as file:
- return Program.parse( file.read())
- @staticmethod
- def parse(code):
- commands = []
- for command in code.strip().split(";")[:-1]:
- name, args = command[:2], command[2:]
- args = [float(arg) for arg in args.split(",")] if args else []
- if name in Command.movecoms and len(args)>2:
- for i in range(0,len(args),2):
- commands.append(Command(name, args[i], args[i+1]))
- else:
- commands.append(Command(name, *args))
- return Program(commands)
-
- def show(self,w=None):
- p=self.flip()
- p=p.rotate(270)
- p=p.fitin((0,0,1024,600),(0,0))
- win=tk.Tk()
- win.title('HPGLPLOTTER')
- canvas=tk.Canvas(win,width=p.winsize[0],height=p.winsize[1])
- canvas.grid(row=0,column=0)
- x = y = 0
- for command in p.commands:
- if command.name == 'PU':
- x,y = command.x,command.y
- elif command.name=='PD':
- canvas.create_line(x,y,command.x,command.y)
- x,y = command.x,command.y
- elif command.name == 'CI':
- r=command.args[0]
- canvas.create_oval(x-r,y-r,x+r,y+r)
- win.mainloop()
-
- def __str__(self):
- return "".join(str(command) for command in self.commands)
-
- def __mul__(self, arg):
- return Program([command * arg for command in self.commands])
-
- def __add__(self, arg):
- if type(arg)== type(self):
- return Program( self.commands + arg.commands )
- return Program([command + arg for command in self.commands])
-
- def __sub__(self, arg):
- return Program([command - arg for command in self.commands])
-
- def __len__(self):
- return len(str(self))
-
- def rotate(self, angl):
- return Program([command.rotate(angl) for command in self.commands])
-
- def flip(self):
- return Program([command.flip() for command in self.commands if command])
-
- def scaleto(self,ab):
- a,b = ab
- return self*min(a/self.winsize[0],b/self.winsize[1])
-
- def moveto(self,ab):
- a,b = ab
- return self-(self.xmin-a,self.ymin-b)
-
- def fitin(self,xys,fxy): # fx fy Alignment Parameter: 0 links/oben 0,5 Mitte 1 rechts/unten
- (x1,y1,x2,y2) = xys
- (fx,fy) = fxy
- print("fx",fx,"fy",fy)
- p = self.scaleto((x2-x1,y2-y1))
- return p.moveto((x1+fx*(x2-x1-p.winsize[0]),y1+fy*(y2-y1-p.winsize[1])))
-
- def multi(self,w,h):
- dist=40
- out=self
- p=self.winsize
- for i in range(w):
- for j in range(h):
- if (w!=0 and h!=0):
- out=out+(self+(i*p[0]+i*dist,j*p[1]+j*dist))
- else:
- pass
-
- return out
-
-
-
- @property
- def center(self):
- return ((self.xmin+self.xmax)/2),((self.ymin+self.ymax)/2)
- @property
- def winsize(self):
- return self.xmax-self.xmin , self.ymax - self.ymin
diff --git a/refac/Program.pyc b/refac/Program.pyc
deleted file mode 100755
index 2635ef4..0000000
Binary files a/refac/Program.pyc and /dev/null differ
diff --git a/refac/__pycache__/Command.cpython-36.pyc b/refac/__pycache__/Command.cpython-36.pyc
deleted file mode 100644
index c514853..0000000
Binary files a/refac/__pycache__/Command.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/Command.cpython-39.pyc b/refac/__pycache__/Command.cpython-39.pyc
deleted file mode 100644
index f5f72b0..0000000
Binary files a/refac/__pycache__/Command.cpython-39.pyc and /dev/null differ
diff --git a/refac/__pycache__/K18650.cpython-36.pyc b/refac/__pycache__/K18650.cpython-36.pyc
deleted file mode 100644
index fef743f..0000000
Binary files a/refac/__pycache__/K18650.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/K18650.cpython-39.pyc b/refac/__pycache__/K18650.cpython-39.pyc
deleted file mode 100644
index b71d8d6..0000000
Binary files a/refac/__pycache__/K18650.cpython-39.pyc and /dev/null differ
diff --git a/refac/__pycache__/Kleber.cpython-36.pyc b/refac/__pycache__/Kleber.cpython-36.pyc
deleted file mode 100644
index 29e4b16..0000000
Binary files a/refac/__pycache__/Kleber.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/Kleber.cpython-39.pyc b/refac/__pycache__/Kleber.cpython-39.pyc
deleted file mode 100644
index fa40fe0..0000000
Binary files a/refac/__pycache__/Kleber.cpython-39.pyc and /dev/null differ
diff --git a/refac/__pycache__/Plotter.cpython-36.pyc b/refac/__pycache__/Plotter.cpython-36.pyc
deleted file mode 100644
index 1aaddc7..0000000
Binary files a/refac/__pycache__/Plotter.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/Plotter.cpython-39.pyc b/refac/__pycache__/Plotter.cpython-39.pyc
deleted file mode 100644
index 7d157ce..0000000
Binary files a/refac/__pycache__/Plotter.cpython-39.pyc and /dev/null differ
diff --git a/refac/__pycache__/Program.cpython-36.pyc b/refac/__pycache__/Program.cpython-36.pyc
deleted file mode 100644
index 2e3ca20..0000000
Binary files a/refac/__pycache__/Program.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/Program.cpython-39.pyc b/refac/__pycache__/Program.cpython-39.pyc
deleted file mode 100644
index 630f86c..0000000
Binary files a/refac/__pycache__/Program.cpython-39.pyc and /dev/null differ
diff --git a/refac/__pycache__/hilbert.cpython-36.pyc b/refac/__pycache__/hilbert.cpython-36.pyc
deleted file mode 100644
index 34eedeb..0000000
Binary files a/refac/__pycache__/hilbert.cpython-36.pyc and /dev/null differ
diff --git a/refac/__pycache__/hilbert.cpython-39.pyc b/refac/__pycache__/hilbert.cpython-39.pyc
deleted file mode 100644
index 3c19e1a..0000000
Binary files a/refac/__pycache__/hilbert.cpython-39.pyc and /dev/null differ
diff --git a/refac/hilbert.pyc b/refac/hilbert.pyc
deleted file mode 100644
index 22dd7fe..0000000
Binary files a/refac/hilbert.pyc and /dev/null differ
diff --git a/refac/main.py b/refac/main.py
deleted file mode 100755
index 7d3dfef..0000000
--- a/refac/main.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from Plotter import *
-from Command import *
-from Program import *
-from Kleber import *
-from K18650 import *
-
-
-#plt = Plotter()#(0,0,400,400))
-
-p = Program.parsefile('../hpgl/ag.hpgl')
-#p=p.
-print(str(p))
-p=p.flip()
-p=p.rotate(270)
-print(p.winsize[0]/40, p.winsize[1]/40)
-
-#p = p.fitin((0, 0, plt.xmax, plt.ymax), (0.5, 0.5))
-print(p.winsize[0]/40, p.winsize[1]/40)
-p.show()
-
-
-
-#plt.write(p)
diff --git a/show_hpgl.py b/show_hpgl.py
new file mode 100644
index 0000000..2195b15
--- /dev/null
+++ b/show_hpgl.py
@@ -0,0 +1,11 @@
+"""Load an HPGL file and show it in a window."""
+from Plotter import *
+from Command import *
+from Program import *
+
+p = Program.parsefile('output/hpgl/ag.hpgl')
+print(str(p))
+p = p.flip()
+p = p.rotate(270)
+print(p.winsize[0] / 40, p.winsize[1] / 40)
+p.show()