Files
drt-verbindungszaehler/lisp/README_LISP.md
T

143 lines
4.0 KiB
Markdown

# VZAEHLER — Verbindungszähler für BricsCAD
Automatische Erkennung und Klassifikation von Linienschnittpunkten auf definierten Layern.
---
## Voraussetzungen
- BricsCAD mit LISP-Unterstützung
- Zeichnung mit Linien (`LINE`) auf den zu prüfenden Layern
- Skriptdatei: `verbindungszaehler.lsp`
> **Wichtig:** Es werden ausschließlich Verbindungspunkte erkannt, die auf der selben Z-Koordinate liegen.
---
## Installation
Skript laden:
```lisp
(load "R:/pfad/zur/verbindungszaehler.lsp")
```
Oder über die AutoCAD/BricsCAD Befehlszeile:
```
APPLOAD → Datei auswählen → Laden
```
---
## Verwendung
Befehl in der Befehlszeile eingeben:
```
VZAEHLER
```
### Eingabeaufforderungen
| Eingabe | Beschreibung | Default |
|---|---|---|
| Layer | Kommagetrennte Liste der zu prüfenden Layer | `D-1, D-5` |
| Toleranz | Maximaler Abstand in Zeichnungseinheiten für Toleranzverbindungen | `0.50` |
Bei einfachem `Return` wird jeweils der Defaultwert verwendet.
**Beispiel:**
```
===== VERBINDUNGSZAEHLER =====
Layer (kommagetrennt) [D-1, D-5]: D-1, D-3
Toleranz [0.50]:
Layer : D-1 D-3
Toleranz : 0.50
------------------------------
Linien gefunden: 42
```
---
## Verbindungstypen
Das Skript unterscheidet drei Typen:
| Typ | Beschreibung | Erkennungslogik | Layer | Farbe |
|---|---|---|---|---|
| **Kreuzung** | Zwei Linien kreuzen sich, Schnittpunkt liegt im Inneren beider Linien | Nur echter geometrischer Schnitt, toleranzunabhängig | `D-KREUZUNG` | Rot (1) |
| **T-Verbindung** | Ein Endpunkt liegt auf dem Inneren der anderen Linie | Toleranzbasiert | `D-T_VERBINDUNG` | Grün (3) |
| **Eckverbindung** | Zwei Endpunkte berühren sich | Toleranzbasiert | `D-ECKVERBINDUNG` | Gelb (5) |
> **Wichtig:** Kreuzungen werden ausschließlich über echten geometrischen Schnitt erkannt — niemals über Toleranz. T-Verbindungen und Eckverbindungen werden niemals als Kreuzung klassifiziert, auch wenn sich die verlängerten Linien schneiden würden.
---
## Ergebnis in der Zeichnung
An jedem erkannten Verbindungspunkt wird ein Kreis (Radius 100 Einheiten) auf dem jeweiligen Ergebnislayer gezeichnet. Die Layer werden automatisch angelegt falls sie noch nicht existieren.
---
## Ausgabedatei
Nach der Auswertung wird automatisch eine Textdatei im Verzeichnis der Zeichnung erstellt:
```
<Zeichnungsname>_<YYYYMMDD-HHMMSS>_vzaehler.txt
```
**Beispiel:** `meinplan_20260507-143211_vzaehler.txt`
### Inhalt der Ausgabedatei
```
================================================
VERBINDUNGSZAEHLER - ERGEBNIS
================================================
Datum/Zeit : 07.05.2026 14:32:11
Zeichnung : R:\projekte\meinplan.dwg
Layer : D-1, D-5
------------------------------------------------
VERBINDUNGSTYPEN
------------------------------------------------
Kreuzungen : 3
T-Verbindungen : 8
Eckverbindungen : 12
------------------------------------------------
SUMMEN
------------------------------------------------
Kreuzungen : 3
Kontaktpunkte (T + Eck) : 20
davon T-Verbindungen : 8
davon Eckverbindungen : 12
GESAMT : 23
================================================
```
---
## Toleranz — Hinweise
Die Toleranz wirkt **ausschließlich** auf T-Verbindungen und Eckverbindungen:
- Zu **klein**: Echte Verbindungen werden nicht erkannt (z.B. bei minimal versetzten Endpunkten durch Zeichenungenauigkeit)
- Zu **groß**: Linien die sich nicht berühren werden fälschlich als verbunden gezählt
- Empfehlung: Toleranz an die Zeichnungsgenauigkeit anpassen, typisch `0.1` bis `1.0` Zeichnungseinheiten (mm bei metrischer Konfiguration)
---
## Bekannte Einschränkungen
- Es werden nur Objekte vom Typ `LINE` ausgewertet — keine Polylinien, Bögen oder Splines
- Die Auswertung erfolgt in 2D (XY-Ebene), Z-Koordinaten werden ignoriert
- Bei sehr großen Zeichnungen (1000+ Linien) kann die Laufzeit spürbar steigen, da alle Linienpaare gegeneinander geprüft werden (O(n²))