# KiCAD Lochraster Generator Plugin

Action-Plugin für KiCAD 10 zur automatischen Erzeugung von Lochraster-Layouts
inklusive einer fertigen Drahtbrücken-Footprint-Bibliothek mit 3D-Modellen.

---

## Funktionen

### Lochraster-Generator
- **Raster**: 2,54 mm Standardraster, frei wählbare Spalten × Zeilen
- **Typ**: Einzelne Vias *oder* Kupferstreifen (Veroboard-Stil)
- **Streifenrichtung**: Horizontal (Zeilen) oder Vertikal (Spalten)
- **Lagen**: Einseitig (B.Cu) oder Zweiseitig (B.Cu + F.Cu, orthogonal)
- **Parameter**: Bohrdurchmesser, Via-/Pad-Größe, Streifenbreite frei einstellbar

### Drahtbrücken-Bibliothek (`Lochraster_Drahtbruecken`)
Zwei Footprint-Familien, je 15 Größen (1× bis 15× 2,54 mm):

| Familie | Draht | Isolierung | Lage | Beschreibung |
|---------|-------|-----------|------|--------------|
| `Drahtbruecke_rot_NNx` | Ø 0,8 mm | rot (isoliert) | F.Cu (Oberseite) | Mit konischen Übergängen und Kontaktpins |
| `Drahtbruecke_silber_NNx` | Ø 0,5 mm | keine (blank) | B.Cu (Unterseite) | Blanker Kupferdraht |

Alle Footprints besitzen 3D-Modelle (STEP) für den KiCAD-3D-Viewer.

---

## Voraussetzungen

| Software | Version | Zweck |
|----------|---------|-------|
| **KiCAD** | 10.0 | Zielplattform |
| **Python** | 3.8+ | Installer |
| **FreeCAD** *(optional)* | 1.0 | STEP-3D-Modelle neu generieren |

FreeCAD wird nur benötigt, wenn die STEP-Dateien neu generiert werden sollen
(z. B. nach Änderungen an den Modellen). Für die normale Installation reichen
die mitgelieferten STEP-Dateien.

FreeCAD Download: https://www.freecad.org/downloads.php
Standardpfad (Windows): `C:\Program Files\FreeCAD 1.0`

---

## Installation

### Schnellinstallation (Windows)

1. Den Ordner `KiCAD_Lochraster_plugin` irgendwo entpacken
2. `install.bat` doppelklicken
3. KiCAD neu starten

### Manuelle Installation

**Schritt 1 – Plugin-Ordner kopieren**

Den gesamten Ordner `KiCAD_Lochraster_plugin` kopieren nach:
```
C:\Users\<Benutzername>\Documents\KiCad\10.0\scripting\plugins\
```

Das Ergebnis sollte so aussehen:
```
scripting\plugins\
└── KiCAD_Lochraster_plugin\
    ├── __init__.py
    ├── lochraster_plugin.py
    ├── lochraster_core.py
    ├── lochraster_dialog.py
    ├── lochraster_footprints.py
    ├── generate_3d_models.py
    ├── install.py
    ├── install.bat
    ├── icon.png
    ├── 3dmodels\
    │   ├── Drahtbruecke_rot_01x.step  … _15x.step
    │   └── Drahtbruecke_silber_01x.step  … _15x.step
    └── Lochraster_Drahtbruecken.pretty\
        ├── Drahtbruecke_rot_01x.kicad_mod  … _15x.kicad_mod
        └── Drahtbruecke_silber_01x.kicad_mod  … _15x.kicad_mod
```

**Schritt 2 – Footprint-Bibliothek registrieren**

In KiCAD: **Einstellungen → Footprint-Bibliotheken verwalten → Globale Bibliotheken → Hinzufügen**

| Feld | Wert |
|------|------|
| Name | `Lochraster_Drahtbruecken` |
| Typ | `KiCad` |
| URI | `…\KiCAD_Lochraster_plugin\Lochraster_Drahtbruecken.pretty` |

*Der Installer (`install.bat` / `install.py`) erledigt diesen Schritt automatisch.*

**Schritt 3 – KiCAD neu starten**

---

## Installer-Optionen

```
python install.py [Optionen]

Optionen:
  --kicad-version VERSION   KiCAD-Version (Standard: 10.0)
  --plugins-dir PFAD        Manueller Pfad zum scripting/plugins-Verzeichnis
  --no-step                 STEP-Generierung überspringen
```

Beispiel für eine abweichende KiCAD-Version:
```
python install.py --kicad-version 9.0
```

---

## Verwendung

### Lochraster erzeugen

1. KiCAD PCB-Editor öffnen
2. Menü **Extras → Externe Plugins → Lochraster Generator** (oder Toolbar-Button)
3. Parameter einstellen und **OK** klicken

### Drahtbrücken platzieren

1. Footprint-Browser öffnen: **Platzieren → Footprint hinzufügen**
2. Bibliothek `Lochraster_Drahtbruecken` wählen
3. Gewünschte Größe auswählen (`rot` = Oberseite, `silber` = Unterseite)
4. Platzieren — bei `silber`-Typ: **'F'** drücken um auf die Unterseite zu flippen

> **Hinweis:** Through-hole-Footprints starten in KiCAD immer auf der Oberseite
> (F.Cu). Die `silber`-Brücken müssen nach dem Platzieren mit **'F'** auf B.Cu
> geflippt werden.

---

## STEP-Modelle neu generieren

Nur nötig nach Änderungen an `lochraster_footprints.py` oder `generate_3d_models.py`:

```
"C:\Program Files\FreeCAD 1.0\bin\python.exe" generate_3d_models.py
```

Oder über den Installer:
```
python install.py
```

---

## Routing-Hinweis

KiCAD erzwingt H/V-Routing nicht automatisch. Für saubere Lochraster-Verbindungen:
- Im interaktiven Router: **Routing-Modus → 45-Grad** (kein Freiwinkel)
  (`Einstellungen → Interaktive Router-Einstellungen → Modus: 45-Grad`)

---

## Dateiübersicht

| Datei/Ordner | Beschreibung |
|---|---|
| `__init__.py` | Plugin-Registrierung bei KiCAD |
| `lochraster_plugin.py` | ActionPlugin-Klasse, Einstiegspunkt |
| `lochraster_dialog.py` | wxPython-Einstellungsdialog |
| `lochraster_core.py` | pcbnew-Logik (Vias, Tracks, Umriss) |
| `lochraster_footprints.py` | Footprint- und STEP-Generator |
| `generate_3d_models.py` | Standalone-Skript für STEP-Neugenerierung |
| `install.py` | Installer (Python 3, kein FreeCAD nötig) |
| `install.bat` | Doppelklick-Installer für Windows |
| `icon.png` | Toolbar-Icon |
| `3dmodels/` | 30 STEP-Dateien (15 rot + 15 silber) |
| `Lochraster_Drahtbruecken.pretty/` | 30 Footprint-Dateien (.kicad_mod) |

---

## Lizenz

Copyright (C) 2025 Andreas Rettig — GNU General Public License v3.0
