diff --git a/api_reference-DE.md b/api_reference-DE.md new file mode 100644 index 0000000..b7cc1f2 --- /dev/null +++ b/api_reference-DE.md @@ -0,0 +1,293 @@ +# API-Referenz + +Erweitern und automatisieren Sie QElectroTech durch Scripting, Plugins und XML-Manipulation. + +--- + +## Überblick + +QElectroTech bietet mehrere Möglichkeiten zur Funktionserweiterung und Workflow-Automatisierung: + +1. **Scripting** — Python-Skripte zur Automatisierung +2. **Plugins** — Mit benutzerdefinierten Funktionen erweitern (Python, etc.) +3. **XML-Manipulation** — Direkte Dateienbearbeitung für benutzerdefinierte Tools +4. **Doxygen-API** — C++-API für Entwickler, die Erweiterungen erstellen + +--- + +## Erste Schritte + +### Für Wen Dieser Leitfaden + +- **Entwickler** die QET erweitern möchten +- **Power-Benutzer** die Workflows automatisieren +- **Tool-Builder** die benutzerdefinierte Dienstprogramme erstellen +- **Forscher** die QET-Dateien programmatisch verarbeiten + +### Voraussetzungen + +- Grundlegende Programmierkenntnisse (Python empfohlen) +- Verständnis von QET-Dateiformaten (XML) +- Vertrautheit mit QET-Benutzeroberfläche und Terminologie + +--- + +## Scripting + +### Python-Scripting + +QElectroTech unterstützt **Python-Scripting** für Automatisierungsaufgaben. + +#### Verfügbare Anwendungsfälle + +- **Leiter-Block-Generierung** — Automatisches Erstellen von Terminalleisten +- **Auto-Nummerierung** — Elemente und Leiter programmatisch nummerieren +- **Batch-Operationen** — Mehrere Diagramme verarbeiten +- **Datenexport** — Informationen aus Projekten extrahieren +- **Benutzerdefinierte Berichte** — Spezialisierte Dokumentation generieren + +#### Terminal-Block-Generator (Beispiel) + +Der **Terminal-Block-Generator** ist ein von der Gemeinschaft beigestütztes Python-Plugin, das die Erstellung von Terminalleisten automatisiert. + +**Funktionen:** +- Generieren Sie Terminal-Blöcke aus Leiter-Listen +- Passen Sie die Terminal-Nummerierung an +- Exportieren Sie Terminal-Dokumentation + +**Gemeinschaft:** +- 55 Themen, 895 Beiträge im Forum +- Aktive Entwicklung und Unterstützung +- Verfügbar auf GitHub + +**Erste Schritte:** +- Forum: https://qelectrotech.org/forum/viewforum.php?id=14 +- Python-Plugin-Beispiel für QET + +### Ihre Eigenen Skripte Schreiben + +#### Script-Struktur + +QET-Skripte typischerweise: + +1. **Lesen** Sie Projekt-/Element-Dateien (XML) +2. **Verarbeiten** Sie die Daten (Python-Logik) +3. **Schreiben** Sie in Datei oder generieren Sie Ausgabe + +#### Beispiel-Workflow + +```python +# Pseudo-Code-Beispiel +import xml.etree.ElementTree as ET + +# QET-Projekt lesen +project = ET.parse('meinprojekt.qet') +root = project.getroot() + +# Alle Elemente suchen +for element in root.findall('.//element'): + # Element verarbeiten + ref = element.get('id') + print(f"Verarbeite Element: {ref}") + +# Zurück schreiben +project.write('meinprojekt_modifiziert.qet') +``` + +#### Häufige Aufgaben + +**Element-Daten Lesen:** +- `.elmt` XML-Dateien analysieren +- Anschlüsse, Grafiken, Eigenschaften extrahieren +- Auf Element-Bibliotheken zugreifen + +**Projekte Ändern:** +- Elemente hinzufügen/entfernen +- Leiter-Eigenschaften ändern +- Nummerierung aktualisieren + +**Berichte Generieren:** +- Element-Listen extrahieren +- Nomenclature generieren +- Verdrahtungsdiagramme erstellen + +### Benötigte Python-Bibliotheken + +```bash +# XML-Verarbeitung (in Python integriert) +import xml.etree.ElementTree as ET + +# Für fortgeschrittene Aufgaben +pip install lxml # Bessere XML-Unterstützung +``` + +### Forum-Diskussion + +**Script-Forum:** https://qelectrotech.org/forum/viewforum.php?id=14 + +Themen umfassen: +- Auto-Nummerungs-Skripte +- Schrank-Layout-Generatoren +- Datenextraktions-Tools +- Batch-Verarbeitungs-Beispiele + +--- + +## Plugins + +### Plugin-System + +QElectroTech unterstützt **Plugins** für tiefe Integration. + +#### Verfügbare Plugins + +**Terminal-Block-Generator** +- Typ: Python-Plugin +- Zweck: Automatisieren Sie die Erstellung von Terminalleisten +- Gemeinschafts-Support: Ja +- Forum: Terminal-Block-Generator-Forum (55 Themen) + +#### Plugin-Entwicklung + +**Erstellen Sie ein Plugin:** + +1. **Verstehen Sie die Plugin-Schnittstelle** — Wie QET Ihren Code aufruft +2. **Schreiben Sie Plugin-Code** — Python oder C++ je nach Integration +3. **Verpacken Sie das Plugin** — Legen Sie es im QET-Plugin-Verzeichnis ab +4. **Testen Sie gründlich** — Gewährleisten Sie Stabilität +5. **Teilen Sie mit der Gemeinschaft** — Tragen Sie zum Forum bei + +**Plugin-Verzeichnisse:** + +**Linux:** +``` +~/.local/share/QElectroTech/plugins/ +``` + +**Windows:** +``` +%APPDATA%\QElectroTech\plugins\ +``` + +**macOS:** +``` +~/Library/Application Support/QElectroTech/plugins/ +``` + +#### Plugin-Beispiele + +**Terminal-Block-Generator:** +- Generiert Terminal-Leisten programmatisch +- Verarbeitet Leiter-Listen +- Erstellt Nomenclature + +**Mögliche Plugin-Ideen:** +- Benutzerdefinierte Element-Bibliotheks-Manager +- Report-Generatoren +- Import/Export-Übersetzer +- Design-Regel-Checker +- Materialkosten-Tools + +### Forum-Diskussionen + +**Code/Programmierung-Forum:** https://qelectrotech.org/forum/viewforum.php?id=17 (91 Themen, 1.231 Beiträge) + +**Script-Forum:** https://qelectrotech.org/forum/viewforum.php?id=14 (33 Themen, 374 Beiträge) + +--- + +## XML-Manipulation + +### Projekt-Dateiformat (.qet) + +QET-Projekte werden im XML-Format gespeichert. Grundstruktur: + +```xml + + + + Name + 2026-01-01 + Mein Projekt + + + + + + + + + + + + + + + + +``` + +### Element-Dateiformat (.elmt) + +Benutzerdefinierte Elemente verwenden das XML-Format: + +```xml + + + + + Mein Element + Mein Element + + ... + Element-Beschreibung + + + + + + + +``` + +### Dateien Bearbeiten + +Sie können XML-Dateien direkt ändern: + +1. **Extrahieren** Sie `.qet`-Datei (Umbenennung in `.zip`) +2. **Bearbeiten** Sie XML-Dateien darin +3. **Komprimieren** Sie und benennen Sie in `.qet` um +4. **Öffnen** Sie in QET + +### XML in Python Analysieren + +```python +import xml.etree.ElementTree as ET + +# Projekt laden +tree = ET.parse('meinprojekt.qet') +root = tree.getroot() + +# Elemente durchlaufen +for elem in root.findall('.//element'): + name = elem.get('name') + elem_type = elem.get('type') + print(f"Element: {name}, Typ: {elem_type}") + +# Änderungen speichern +tree.write('meinprojekt_modifiziert.qet', encoding='UTF-8') +``` + +--- + +## Zusätzliche Ressourcen + +- **[QET Erstellen](building-DE)** — Aus Quelle kompilieren +- **[Zu QET Beitragen](contributing-DE)** — Code-Beitrag-Anleitung +- **[Doxygen-API](https://download.qelectrotech.org/qet/doxygen/html/)** — C++-API-Referenz +- **[Script-Forum](https://qelectrotech.org/forum/viewforum.php?id=14)** — Diskutieren und Teilen +- **[Code-Forum](https://qelectrotech.org/forum/viewforum.php?id=17)** — Entwickler-Fragen + +--- + +**[🌐 Sprache wählen](languages)** — English · Français · Deutsch diff --git a/api_reference-FR.md b/api_reference-FR.md new file mode 100644 index 0000000..1a6785f --- /dev/null +++ b/api_reference-FR.md @@ -0,0 +1,296 @@ +# Référence API + +Étendez et automatisez QElectroTech grâce au scripting, aux plugins et à la manipulation XML. + +--- + +## Aperçu + +QElectroTech fournit plusieurs façons d'étendre les fonctionnalités et d'automatiser les workflows : + +1. **Scripting** — Scripts Python pour automatisation +2. **Plugins** — Étendre avec des fonctionnalités personnalisées (Python, etc.) +3. **Manipulation XML** — Édition directe de fichiers pour outils personnalisés +4. **Doxygen API** — API C++ pour développeurs construisant des extensions + +--- + +## Commencer + +### Pour Qui Ce Guide + +- **Développeurs** voulant étendre QET +- **Utilisateurs avancés** automatisant des workflows +- **Constructeurs d'outils** créant des utilitaires personnalisés +- **Chercheurs** traitant les fichiers QET programmatiquement + +### Prérequis + +- Connaissances de programmation de base (Python recommandé) +- Compréhension des formats de fichier QET (XML) +- Familiarité avec l'interface et la terminologie de QET + +--- + +## Scripting + +### Scripting Python + +QElectroTech supporte le **scripting Python** pour les tâches d'automatisation. + +#### Cas d'Utilisation Disponibles + +- **Génération de blocs terminaux** — Créer automatiquement les bandes terminales +- **Auto-numérotation** — Numéroter programmatiquement les éléments et conducteurs +- **Opérations par lot** — Traiter plusieurs diagrammes +- **Export de données** — Extraire les informations des projets +- **Rapports personnalisés** — Générer une documentation spécialisée + +#### Générateur de Bloc Terminal (Exemple) + +Le **Générateur de Bloc Terminal** est un plugin Python contribué par la communauté qui automatise la création de bandes terminales. + +**Fonctionnalités :** +- Générer des blocs terminaux à partir des listes de conducteurs +- Personnaliser la numérotation des bornes +- Exporter la documentation terminale + +**Communauté :** +- 55 sujets, 895 messages au forum +- Développement et support actif +- Disponible sur GitHub + +**Débuter :** +- Forum : https://qelectrotech.org/forum/viewforum.php?id=14 +- Exemple de plugin Python pour QET + +### Écrire Vos Propres Scripts + +#### Structure des Scripts + +Les scripts QET généralement : + +1. **Lisent** les fichiers projet/élément (XML) +2. **Traitent** les données (logique Python) +3. **Écrivent** vers un fichier ou génèrent une sortie + +#### Exemple de Workflow + +```python +# Pseudo-code exemple +import xml.etree.ElementTree as ET + +# Lire projet QET +project = ET.parse('monprojet.qet') +root = project.getroot() + +# Trouver tous les éléments +for element in root.findall('.//element'): + # Traiter l'élément + ref = element.get('id') + print(f"Traitement l'élément : {ref}") + +# Écrire +project.write('monprojet_modifie.qet') +``` + +#### Tâches Courantes + +**Lecture des Données d'Élément :** +- Analyser les fichiers XML `.elmt` +- Extraire les bornes, graphiques, propriétés +- Accéder aux bibliothèques d'éléments + +**Modification des Projets :** +- Ajouter/supprimer des éléments +- Modifier les propriétés des conducteurs +- Mettre à jour la numérotation + +**Génération de Rapports :** +- Extraire les listes d'éléments +- Générer la nomenclature +- Créer des diagrammes de câblage + +### Bibliothèques Python Nécessaires + +```bash +# Traitement XML (Python intégré) +import xml.etree.ElementTree as ET + +# Pour les tâches avancées +pip install lxml # Meilleur support XML +``` + +### Discussion du Forum + +**Forum des Scripts :** https://qelectrotech.org/forum/viewforum.php?id=14 + +Les sujets incluent : +- Scripts d'auto-numérotation +- Générateurs de mise en page armoire +- Outils d'extraction de données +- Exemples de traitement par lot + +--- + +## Plugins + +### Système de Plugins + +QElectroTech supporte les **plugins** pour une intégration profonde. + +#### Plugins Disponibles + +**Générateur de Bloc Terminal** +- Type : Plugin Python +- Objectif : Automatiser la création de bandes terminales +- Support communautaire : Oui +- Forum : Forum du générateur de bloc terminal (55 sujets) + +#### Développement de Plugin + +**Créer un Plugin :** + +1. **Comprendre l'interface du plugin** — Comment QET appelle votre code +2. **Écrire le code du plugin** — Python ou C++ en fonction de l'intégration +3. **Empaqueter le plugin** — Placer dans le répertoire des plugins QET +4. **Tester complètement** — Assurer la stabilité +5. **Partager avec la communauté** — Contribuer au forum + +**Répertoires de Plugin :** + +**Linux :** +``` +~/.local/share/QElectroTech/plugins/ +``` + +**Windows :** +``` +%APPDATA%\QElectroTech\plugins\ +``` + +**macOS :** +``` +~/Library/Application Support/QElectroTech/plugins/ +``` + +#### Exemples de Plugin + +**Générateur de Bloc Terminal :** +- Génère les bandes terminales programmatiquement +- Traite les listes de conducteurs +- Crée la nomenclature + +**Idées de Plugin Potentielles :** +- Gestionnaires de bibliothèque d'éléments personnalisés +- Générateurs de rapports +- Traducteurs import/export +- Vérificateurs de règles de conception +- Outils de nomenclature + +### Discussions du Forum + +**Forum Code/Programmation :** https://qelectrotech.org/forum/viewforum.php?id=17 (91 sujets, 1.231 messages) + +**Forum Scripts :** https://qelectrotech.org/forum/viewforum.php?id=14 (33 sujets, 374 messages) + +--- + +## Manipulation XML + +### Format de Fichier Projet (.qet) + +Les projets QET sont stockés au format XML. Structure de base : + +```xml + + + + Nom + 2026-01-01 + Mon Projet + + + + + + + + + + + + + + + + +``` + +### Format de Fichier Élément (.elmt) + +Les éléments personnalisés utilisent le format XML : + +```xml + + + + + Mon Élément + Mon Élément + + ... + Description de l'élément + + switch + + + + + + + + +``` + +### Édition de Fichiers + +Vous pouvez directement modifier les fichiers XML : + +1. **Extraire** le fichier `.qet` (renommer en `.zip`) +2. **Éditer** les fichiers XML à l'intérieur +3. **Compresser** et renommer en `.qet` +4. **Ouvrir** dans QET + +### Parsing XML en Python + +```python +import xml.etree.ElementTree as ET + +# Charger projet +tree = ET.parse('myproject.qet') +root = tree.getroot() + +# Parcourir les éléments +for elem in root.findall('.//element'): + name = elem.get('name') + elem_type = elem.get('type') + print(f"Élément : {name}, Type : {elem_type}") + +# Sauvegarder les modifications +tree.write('myproject_modified.qet', encoding='UTF-8') +``` + +--- + +## Ressources Supplémentaires + +- **[Construire QET](building-FR)** — Compiler à partir de la source +- **[Contribuer à QET](contributing-FR)** — Guide de contribution de code +- **[API Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)** — Référence API C++ +- **[Forum Scripts](https://qelectrotech.org/forum/viewforum.php?id=14)** — Discuter et partager +- **[Forum Code](https://qelectrotech.org/forum/viewforum.php?id=17)** — Questions de développement + +--- + +**[🌐 Choisir la Langue](languages)** — English · Français · Deutsch \ No newline at end of file