|
|
||
|---|---|---|
| .. | ||
| dist_linux | ||
| BENUTZERHANDBUCH.md | ||
| CHANGELOG.md | ||
| DEPLOYMENT.md | ||
| GIT_SETUP.md | ||
| INSTALLATION.txt | ||
| LICENSE.txt | ||
| README.md | ||
| VERSION.txt | ||
| build_linux.sh | ||
| build_windows.bat | ||
| build_windows_on_linux.sh | ||
| build_windows_wine.sh | ||
| cluster_cleanup.txt | ||
| pointcab_renamer.py | ||
| requirements.txt | ||
README.md
PointCab Projekt Umbenenner v4.1.1
Ein GUI-Tool zum Umbenennen von Scans in PointCab-Projekten und zum Zusammenführen mehrerer Projekte.
Funktionen
1. 📁 Einzelprojekt bearbeiten
- Einzelnes PointCab-Projekt auswählen und Scans umbenennen
- Vollständige Scan-Namen:
1.lsd → Projektname_01.lsd - Clustername-Bereinigung über Konfigurationsdatei
- Automatisches Backup der LSDX-Datei
2. 📂 Batch Renamer
- Mehrere Projekte in einem Verzeichnis automatisch verarbeiten
- Fortschrittsanzeige und detailliertes Logging
- Fehlertoleranz: Bei Fehler wird mit nächstem Projekt fortgefahren
3. 🔀 Projektmerger (verbessert in v4.1)
- Mehrere PointCab-Projekte in ein Stammprojekt zusammenführen
- Zwei Modi: Einzelprojekt oder Batch-Merge
- NEU: Intelligente Cluster-Duplikat-Erkennung
- Intelligente Namenskonflikt-Behandlung
- Vollständige LSDX-Zusammenführung mit detailliertem Logging
Installation
Voraussetzungen
- Python 3.8 oder höher
- Tkinter (normalerweise in Python enthalten)
Ausführen
python pointcab_renamer.py
Projektmerger - Detaillierte Dokumentation
Konzept
Der Projektmerger ermöglicht das Zusammenführen mehrerer PointCab-Projekte in ein einzelnes Stammprojekt. Dies ist nützlich wenn:
- Mehrere Scan-Sessions zu einem Projekt gehören
- Projekte nachträglich zusammengeführt werden sollen
- Daten aus verschiedenen Quellen konsolidiert werden müssen
Modi
Einzelprojekt hinzufügen
- Stammprojekt (Ziel) auswählen
- Ein einzelnes Quellprojekt auswählen
- Vorschau anzeigen
- Merge durchführen
Batch-Merge
- Stammprojekt (Ziel) auswählen
- Hauptverzeichnis mit mehreren Quellprojekten auswählen
- Alle gefundenen Projekte werden automatisch erkannt
- Vorschau anzeigen
- Merge durchführen
Merge-Operationen
Der Projektmerger führt folgende Operationen durch:
-
Backup erstellen
- Vor dem Merge wird ein Backup der Stammprojekt-LSDX erstellt
- Format:
projektname.lsdx.backup_YYYYMMDD_HHMMSS
-
LSD-Dateien kopieren
- Alle LSD-Dateien aus den Quellprojekten werden in das Stammprojekt kopiert
- Bei Namenskonflikten: Automatische Umbenennung (siehe unten)
-
PNG-Dateien kopieren
- Alle Preview-Bilder werden in den Previews-Ordner des Stammprojekts kopiert
- Bei Namenskonflikten: Automatische Umbenennung
-
LSDX zusammenführen
- Cluster-Duplikat-Erkennung (NEU in v4.1):
- Prüft ob Cluster mit gleichem Namen bereits existiert
- Bei Duplikat: Scans werden dem existierenden Cluster zugeordnet
- Bei neuem Cluster: Neuer Cluster wird mit neuer UUID hinzugefügt
- Alle Scan-Elemente werden mit korrekten Parent-Referenzen eingefügt
- UUIDs werden neu generiert um Konflikte zu vermeiden
- FilePath-Referenzen werden bei Umbenennung angepasst
- Detailliertes Logging aller Operationen
- Cluster-Duplikat-Erkennung (NEU in v4.1):
Namenskonflikt-Behandlung
Wenn eine Datei im Zielordner bereits existiert:
Vor Merge:
Stammprojekt/PointCloud/scan_01.lsd (existiert)
Quellprojekt/PointCloud/scan_01.lsd (zu mergen)
Nach Merge:
Stammprojekt/PointCloud/scan_01.lsd (original)
Stammprojekt/PointCloud/scan_01_merged_1.lsd (aus Quellprojekt)
Die LSDX-Referenzen werden automatisch aktualisiert:
<!-- Vorher -->
<FilePath type="lsd">scan_01.lsd</FilePath>
<!-- Nachher (für gemergtes Element) -->
<FilePath type="lsd">scan_01_merged_1.lsd</FilePath>
Beispiel: Einzelprojekt-Merge
Vorher:
├── Stammprojekt/
│ ├── Stammprojekt_PointCloud/
│ │ ├── Stammprojekt.lsdx
│ │ ├── 1.lsd
│ │ ├── 2.lsd
│ │ └── Previews/
│ │ ├── 1.png
│ │ └── 2.png
├── Quellprojekt/
│ ├── Quellprojekt_PointCloud/
│ │ ├── Quellprojekt.lsdx
│ │ ├── 1.lsd
│ │ ├── 2.lsd
│ │ └── Previews/
│ │ ├── 1.png
│ │ └── 2.png
Nachher:
├── Stammprojekt/
│ ├── Stammprojekt_PointCloud/
│ │ ├── Stammprojekt.lsdx (zusammengeführt)
│ │ ├── Stammprojekt.lsdx.backup_20260114_101500
│ │ ├── 1.lsd
│ │ ├── 2.lsd
│ │ ├── 1_merged_1.lsd (aus Quellprojekt)
│ │ ├── 2_merged_2.lsd (aus Quellprojekt)
│ │ └── Previews/
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 1_merged_1.png
│ │ └── 2_merged_2.png
│ └── merge_20260114_101500.log
Beispiel: Batch-Merge
Vorher:
├── Hauptverzeichnis/
│ ├── Stammprojekt/
│ │ └── Stammprojekt_PointCloud/
│ │ ├── Stammprojekt.lsdx
│ │ └── (Scans 1-5)
│ ├── Projekt_A/
│ │ └── Projekt_A_PointCloud/
│ │ ├── Projekt_A.lsdx
│ │ └── (Scans 1-3)
│ └── Projekt_B/
│ └── Projekt_B_PointCloud/
│ ├── Projekt_B.lsdx
│ └── (Scans 1-4)
Nach Batch-Merge (Stammprojekt als Ziel, Hauptverzeichnis als Quelle):
├── Stammprojekt/
│ └── Stammprojekt_PointCloud/
│ ├── Stammprojekt.lsdx (enthält jetzt 12 Scans)
│ ├── Stammprojekt.lsdx.backup_...
│ └── (alle LSD/PNG-Dateien)
│ └── merge_....log
Logging
Jeder Merge-Vorgang erstellt eine detaillierte Log-Datei:
- Einzelprojekt-Merge:
merge_YYYYMMDD_HHMMSS.logim Stammprojekt-Verzeichnis - Batch-Merge: Eine Log-Datei pro Merge-Vorgang
Log-Inhalt:
- Alle kopierten Dateien
- Umbenennungen bei Konflikten
- Aktualisierte LSDX-Referenzen
- Fehler und Warnungen
Fehlerbehandlung
- Fehlende Dateien: Werden übersprungen, Warnung im Log
- Batch-Merge bei Fehler: Verarbeitung wird mit nächstem Projekt fortgesetzt
- LSDX-Parsing-Fehler: Projekt wird übersprungen
- Backup: Immer vor Änderungen erstellt
Konfiguration
cluster_cleanup.txt
Strings die aus dem Clusternamen entfernt werden:
_re
_li
_mi
# Kommentare mit # beginnen
Executable erstellen
Windows (auf Windows)
pip install pyinstaller
pyinstaller --onefile --windowed pointcab_renamer.py
Linux
./build_linux.sh
Cross-Compilation: Windows .exe unter Linux
Es ist möglich, eine Windows .exe unter Linux zu erstellen. Dazu stehen zwei Methoden zur Verfügung:
# Methode 1: Docker (empfohlen)
./build_windows_on_linux.sh
# Methode 2: Wine (Fallback)
./build_windows_wine.sh
Die Docker-Methode ist zuverlässiger und wird empfohlen. Für Details siehe DEPLOYMENT.md.
Wichtig: Die cluster_cleanup.txt muss neben der .exe-Datei liegen.
Changelog
v4.1.1 (2026-01-14)
- NEU: Cross-Compilation-Unterstützung für Windows .exe unter Linux
- Docker-basiertes Build-Skript (
build_windows_on_linux.sh) - Wine-basiertes Fallback-Skript (
build_windows_wine.sh) - GitHub Actions Beispiel-Workflow
- Docker-basiertes Build-Skript (
- Erweiterte DEPLOYMENT.md-Dokumentation
v4.1 (2026-01-14)
- FIX: Projektmerger LSDX-Zusammenführung komplett überarbeitet
- Cluster-Duplikat-Erkennung: Verhindert doppelte Cluster bei gleichem Namen
- Scans werden korrekt dem existierenden oder neuen Cluster zugeordnet
- Parent-Referenzen werden jetzt korrekt gesetzt (Cluster→Registration, Scan→Cluster)
- Detailliertes Logging aller Merge-Operationen
- Finale Scan/Cluster-Statistik nach Merge
- LSDX-Struktur im Code dokumentiert
v4.0 (2026-01-14)
- NEU: Projektmerger-Funktion
- Einzelprojekt- und Batch-Merge-Modi
- Intelligente Namenskonflikt-Behandlung
- Automatische UUID-Neugenerierung
- Vollständige LSDX-Zusammenführung
- Hauptmenü auf 3 Optionen erweitert
- Verbesserte Fehlerbehandlung
v3.1 (2026-01-14)
- Full-Scan-Name-Pattern:
1.lsd → Projektname_01.lsd - Konsistente Benennung in Dateien und LSDX
v3.0 (2026-01-14)
- Batch Renamer hinzugefügt
- Hauptmenü für Modus-Auswahl
v2.0 (2026-01-14)
- Clustername-Bereinigung via Konfigurationsdatei
v1.0 (2026-01-14)
- Initiale Version
Lizenz
MIT License