# 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.

## Config

- Copy **`config.example.ini`** to **`config.ini`** to set plotter port, baudrate, timeouts, and web UI host/port. `config.ini` is gitignored.
- Plotter and web UI read from `config.ini`; env `SECRET_KEY` overrides the web session secret.
