Files
drt-verbindungszaehler/README.md
T
2025-12-02 16:21:38 +01:00

5.3 KiB

DRT-Verbindungszähler - DXF-Analyse-Tool

Ein Python-basiertes Werkzeug zur automatischen Erkennung und Markierung von Schnittpunkten zwischen Linien in DXF-Dateien.

Überblick

Dieses Projekt analysiert DXF-Dateien und identifiziert Verbindungs- bzw. Schnittpunkte zwischen Linien auf verschiedenen Layern. Die gefundenen Schnittpunkte werden mit Kreisen markiert und in einer separaten DXF-Datei sowie einem Textbericht ausgegeben.

Projektstruktur

verbindungszaehler/
├── verbindungszaehler.bat    # Hauptskript zum Starten der Analyse
├── setenv.bat                 # Umgebungsvariablen und Verzeichnisstruktur
├── defaults.cfg               # Standardkonfiguration
├── lib/
│   ├── analyze.py            # Python-Analyseskript
│   └── dxf_analyzer.py       # Kernlogik
├── input/                     # Eingabeverzeichnis für DXF-Dateien
└── output/                    # Ausgabeverzeichnis für Ergebnisse

Voraussetzungen

  • Windows-Betriebssystem
  • Python 3.x installiert und im PATH verfügbar
  • Python-Bibliothek für DXF-Verarbeitung ezdxf
  • Modul dxf_analyzer.py mit der Klasse IntersectionAnalyzer

Installation

  1. Projekt in ein beliebiges Verzeichnis entpacken
  2. Sicherstellen, dass Python installiert ist
  3. Benötigte Python-Pakete installieren (z.B. pip install ezdxf)
  4. DXF-Dateien im input/-Verzeichnis ablegen

Verwendung

Methode 1: Alle Dateien im Input-Verzeichnis analysieren

Doppelklick auf verbindungszaehler.bat oder per Kommandozeile:

verbindungszaehler.bat

Alle DXF-Dateien im input/-Verzeichnis werden automatisch mit den Einstellungen aus defaults.cfg analysiert.

Methode 2: Einzelne Datei per Drag & Drop

Ziehen Sie eine DXF-Datei direkt auf die verbindungszaehler.bat und lassen Sie sie los. Die Datei wird sofort mit den Einstellungen aus defaults.cfg analysiert.

Methode 3: Einzelne Datei per Kommandozeile

verbindungszaehler.bat "C:\Pfad\zur\datei.dxf"

Konfiguration

defaults.cfg

Die Datei defaults.cfg enthält alle Einstellungen für die Analyse. Passen Sie diese Werte nach Bedarf an:

LAYERS=D-1,D-5
TOLERANCE=0.06
MARK_RADIUS=150

Parameter-Erklärung:

  • LAYERS: Kommagetrennte Liste der zu analysierenden Layer (z.B. "D-1,D-5,D-3")
  • TOLERANCE: Maximaler Abstand in DXF-Einheiten, bei dem zwei Punkte als identisch gelten (für ungenaue Zeichnungen)
  • MARK_RADIUS: Radius der Kreise in DXF-Einheiten, die Schnittpunkte markieren

Hinweis: Nach Änderungen in defaults.cfg werden die neuen Werte bei der nächsten Ausführung automatisch verwendet.

Ausgabe

Das Tool erzeugt für jede analysierte DXF-Datei zwei Dateien im output/-Verzeichnis:

  1. [Dateiname]markiert[Datum]_[Zeit].dxf
    DXF-Datei mit eingezeichneten Kreisen an allen gefundenen Schnittpunkten

  2. [Dateiname]analyse[Datum]_[Zeit].txt
    Textbericht mit Details zu den gefundenen Verbindungen (Koordinaten, Anzahl, etc.)

Beispiel:

zeichnung_markiert_20241202_14-30.dxf
zeichnung_analyse_20241202_14-30.txt

Funktionsweise

  1. setenv.bat richtet die Verzeichnisstruktur ein und lädt die Konfigurationswerte aus defaults.cfg
  2. verbindungszaehler.bat verarbeitet die angegebene Datei (oder alle Dateien im Input-Ordner) und ruft das Python-Skript auf
  3. analyze.py lädt die DXF-Datei und übergibt sie zusammen mit den Konfigurationsparametern an den IntersectionAnalyzer
  4. Der Analyzer findet Schnittpunkte zwischen Linien auf den angegebenen Layern innerhalb der definierten Toleranz
  5. Gefundene Schnittpunkte werden mit Kreisen (Radius aus MARK_RADIUS) markiert
  6. Ergebnisse werden als neue DXF-Datei und Textbericht gespeichert

Workflow-Beispiel

  1. DXF-Dateien in den input/-Ordner kopieren
  2. defaults.cfg öffnen und gewünschte Layer-Namen, Toleranz und Markierungsradius eintragen
  3. verbindungszaehler.bat per Doppelklick starten oder eine einzelne DXF-Datei auf die Batch-Datei ziehen
  4. Ergebnisse im output/-Ordner überprüfen: Bevor die Anzahl der Verbindungen weiter verwendet wird, sind die markierten Punkte im Ausgabelayout zwingend auf Fehler zu überprüfen!

Hinweise

  • Stellen Sie sicher, dass die Layer-Namen in defaults.cfg exakt mit denen in der DXF-Datei übereinstimmen (Groß-/Kleinschreibung beachten)
  • Bei sehr großen Dateien kann die Analyse einige Zeit in Anspruch nehmen
  • Die Toleranz sollte an die Genauigkeit Ihrer Zeichnungen angepasst werden (typische Werte: 0.01 bis 0.1)
  • Der Markierungsradius sollte groß genug sein, um in der Zeichnung sichtbar zu sein, aber klein genug, um Details nicht zu verdecken
  • Ausgabedateien werden nicht überschrieben, da jede Datei einen eindeutigen Zeitstempel erhält

Fehlerbehebung

"Datei nicht gefunden"

Überprüfen Sie den Pfad zur DXF-Datei oder legen Sie Dateien im input/-Verzeichnis ab.

"Keine Schnittpunkte gefunden"
  • Prüfen Sie, ob die in defaults.cfg angegebenen Layer in der DXF-Datei existieren
  • Erhöhen Sie den TOLERANCE-Wert in defaults.cfg, falls Linien nicht exakt verbunden sind
Python-Fehler

Stellen Sie sicher, dass alle erforderlichen Python-Bibliotheken installiert sind.

Drag & Drop funktioniert nicht

Stellen Sie sicher, dass Sie die Datei auf verbindungszaehler.bat (nicht auf setenv.bat) ziehen.

Autor

Simon Hensch