11
EPLAN Electric P8 automatisieren Auf CD: Microsoft Visual C# 2010 Express, Beispielprojekt mit 84 Scripten Johann Weiher Grundlagen und Beispiele zum Erstellen von Scripten in Visual C#

EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

  • Upload
    dangnga

  • View
    261

  • Download
    15

Embed Size (px)

Citation preview

Page 1: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

EPLAN Electric P8 automatisieren

Auf CD: Microsoft Visual C# 2010 Express,

Beispielprojekt mit 84 Scripten

Johann Weiher

Grundlagen und Beispiele zumErstellen von Scripten in Visual C#

Page 2: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

Inhalt

Vorwort ............................................................................................ 1

1 Einführung ............................................................................. 31.1 Toolbars – der erste Schritt zum Script................................................... 51.1.1 Toolbars anpassen ............................................................................................................ 51.1.2 Schaltflächen ...................................................................................................................... 101.1.3 Schaltflächen mit Parameter ......................................................................................... 141.1.4 Schaltflächen mit externen Programmen belegen ................................................ 171.1.5 Verschachtelte Toolbars ................................................................................................. 201.1.6 Toolbars importieren und exportieren ...................................................................... 241.2 Einführung in die Programmierung ......................................................... 251.2.1 Was ist eine Entwicklungsumgebung? ....................................................................... 271.2.2 Projekt in Microsoft Visual C# erstellen ................................................................... 29

2 Scriptfunktionen ................................................................... 352.1 Attribute .................................................................................................... 352.1.1 Start ....................................................................................................................................... 362.1.2 DeclareAction..................................................................................................................... 442.1.3 DeclareEventHandler ...................................................................................................... 472.1.4 DeclareRegister & DeclareUnregister ......................................................................... 482.1.5 DeclareMenu ...................................................................................................................... 492.2 Actions ausführen .................................................................................... 502.2.1 Einzelne Action .................................................................................................................. 502.2.2 Mehrere Actions ............................................................................................................... 522.2.3 Action mit Parameter ...................................................................................................... 552.3 Objekte ..................................................................................................... 582.3.1 String ..................................................................................................................................... 592.3.2 Integer .................................................................................................................................. 672.3.3 Float ....................................................................................................................................... 71

Page 3: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

VI  Inhalt

2.3.4 Fehlerbehandlung Try & Catch .................................................................................... 742.3.5 Systemmeldungen ............................................................................................................ 772.3.6 Parameterübergabe: String ............................................................................................ 802.3.7 Parameterübergabe: Integer .......................................................................................... 812.3.8 Messagebox......................................................................................................................... 822.4 Programmsteuerung ................................................................................ 852.4.1 If-Abfrage ............................................................................................................................. 852.4.2 Switch ................................................................................................................................... 902.4.3 Methoden extrahieren .................................................................................................... 922.5 Settings ..................................................................................................... 1012.5.1 String-Setting verändern ................................................................................................ 1012.5.2 Bool-Setting verändern ................................................................................................... 1042.5.3 Integer-Setting verändern .............................................................................................. 1052.5.4 String-Setting lesen........................................................................................................... 1062.5.5 Bool-Setting lesen .............................................................................................................. 1072.5.6 Integer-Setting lesen ........................................................................................................ 1082.5.7 Import ................................................................................................................................... 1092.5.8 Projekteinstellungen importieren ............................................................................... 1102.6 Menüs ....................................................................................................... 1152.6.1 Menüpunkt in Dienstprogramme ................................................................................ 1162.6.2 Bestehendes Menü erweitern ....................................................................................... 1182.6.3 Hauptmenü mit einem Untermenüpunkt ................................................................. 1202.6.4 Bestehendes Menü mit Popup-Menü erweitern ..................................................... 1222.6.5 Hauptmenü mit Popup-Menü........................................................................................ 1232.6.6 Menüpunkt in Kontextmenü ........................................................................................ 1242.7 Progressbar .............................................................................................. 1282.7.1 SimpleProgress .................................................................................................................. 1282.7.2 EnhancedProgress ............................................................................................................ 1322.8 Formulare ................................................................................................. 1332.8.1 Vorlage erstellen ............................................................................................................... 1342.8.2 Button ................................................................................................................................... 1392.8.3 Checkbox ............................................................................................................................. 1432.8.4 Label ...................................................................................................................................... 1462.8.5 TabIndex .............................................................................................................................. 1472.8.6 Progressbar ......................................................................................................................... 1482.8.7 Mauszeiger ändern ........................................................................................................... 1492.8.8 ListView ............................................................................................................................... 150

3 Schnittstellenprogrammierung ........................................... 1653.1 Externe Programme ................................................................................. 1653.1.1 Prozess ausführen ............................................................................................................ 1653.1.2 Unterschiedliche Prozesse ausführen ........................................................................ 167

Page 4: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

Inhalt VII

3.2 Dateien und Ordner .................................................................................. 1723.2.1 Ordner prüfen .................................................................................................................... 1723.2.2 Dateien prüfen ................................................................................................................... 1733.2.3 Dateien löschen ................................................................................................................. 1753.2.4 Dateien mit Datumstempel ............................................................................................ 1753.3 Dateien öffnen und speichern ................................................................. 1773.3.1 SaveFileDialog .................................................................................................................... 1773.3.2 OpenFileDialog .................................................................................................................. 1803.3.3 Dateinamen überprüfen ................................................................................................. 1823.4 Dateien schreiben .................................................................................... 1853.4.1 Beschriftung........................................................................................................................ 1853.4.2 Beschriftung mit Überprüfung ..................................................................................... 1903.4.3 PDF beim Schließen erzeugen ...................................................................................... 1953.4.4 Textdatei schreiben .......................................................................................................... 2003.4.5 XML-Datei schreiben ....................................................................................................... 2023.5 Dateien lesen ............................................................................................ 2083.5.1 Textdatei lesen ................................................................................................................... 2083.5.2 XML-Datei lesen ................................................................................................................ 2163.6 Befehlszeile ............................................................................................... 2223.6.1 Allgemeine Befehlszeilenparameter ........................................................................... 2223.6.2 Actions .................................................................................................................................. 224

4 Praxisbeispiele ...................................................................... 2274.1 Compress .................................................................................................. 2274.2 Devicelist .................................................................................................. 2304.3 Edit ............................................................................................................ 2314.4 ExecuteScript ........................................................................................... 2334.5 Generate ................................................................................................... 2344.6 Import ....................................................................................................... 2354.7 Partlist ...................................................................................................... 2364.8 Print .......................................................................................................... 2374.9 ProjectAction ............................................................................................ 2384.10 Projekteigenschaft setzen ....................................................................... 2394.11 Backup ...................................................................................................... 2404.12 Restore ...................................................................................................... 2464.13 Projekteigenschaften importieren ........................................................... 2484.14 Seitenanzahl ermitteln ............................................................................. 2524.15 Sounds ...................................................................................................... 2564.16 Besser als Progressbar ............................................................................ 2594.17 E-Mail ........................................................................................................ 261

Page 5: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

VIII  Inhalt

5 Anhang ................................................................................... 2675.1 EPLAN-Actions.......................................................................................... 2675.1.1 backup .................................................................................................................................. 2675.1.2 check ..................................................................................................................................... 2695.1.3 compress .............................................................................................................................. 2695.1.4 devicelist ............................................................................................................................. 2705.1.5 edit ......................................................................................................................................... 2705.1.6 EplApiModuleAction ....................................................................................................... 2715.1.7 ExecuteScript ..................................................................................................................... 2715.1.8 export ................................................................................................................................... 2715.1.9 generate ............................................................................................................................... 2745.1.10 import ................................................................................................................................... 2755.1.11 label ....................................................................................................................................... 2785.1.12 MfExportToolbarAction .................................................................................................. 2795.1.13 MfImportToolbarAction .................................................................................................. 2795.1.14 MfRemoveToolbarAction ................................................................................................ 2795.1.15 OpenWorkspaceAction .................................................................................................... 2795.1.16 partslist ................................................................................................................................ 2805.1.17 print ....................................................................................................................................... 2815.1.18 ProjectAction ...................................................................................................................... 2825.1.19 projectmanagement ......................................................................................................... 2825.1.20 ProjectOpen ........................................................................................................................ 2825.1.21 reports .................................................................................................................................. 2825.1.22 restore ................................................................................................................................... 2835.1.23 SaveWorkspaceAction ..................................................................................................... 2835.1.24 search ................................................................................................................................... 2845.1.25 selectionset ......................................................................................................................... 2855.1.26 synchronize ......................................................................................................................... 2855.1.27 translate ............................................................................................................................... 2855.1.28 XDLInsertDeviceAction .................................................................................................. 2865.1.29 XEGActionInsertSymRef ................................................................................................ 2865.1.30 XEsSetPagePropertyAction ............................................................................................ 2875.1.31 XEsSetProjectPropertyAction ....................................................................................... 2875.1.32 XEsSetPropertyAction ..................................................................................................... 2875.1.33 XGedClosePage .................................................................................................................. 2875.1.34 XGedStartInteractionAction .......................................................................................... 2875.1.35 XMExportConnectionsAction ....................................................................................... 2925.1.36 XMExportFunctionAction .............................................................................................. 2935.1.37 XMExportPagesAction .................................................................................................... 2935.1.38 XMExportPPELoopsAction ............................................................................................ 2945.1.39 XSDPreviewAction ........................................................................................................... 2955.1.40 XSettingsImport ................................................................................................................. 2955.1.41 ZipProjectAction................................................................................................................ 295

Page 6: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

Inhalt IX

5.2 EPLAN Events ........................................................................................... 2965.2.1 Eplan_EplApi_OnMainEnd ............................................................................................ 2965.2.2 Eplan_EplApi_OnPostOpenProject ............................................................................. 2965.2.3 Eplan_EplApi_OnUserPreCloseProject ..................................................................... 2965.2.4 Ged_Redraw ....................................................................................................................... 2975.2.5 onActionEnd_String_* .................................................................................................... 2975.2.6 onActionStart_String_* .................................................................................................. 2975.2.7 Page_ConnectionDirty..................................................................................................... 2975.3 Tastaturbefehle......................................................................................... 2975.4 Namenskonventionen .............................................................................. 3185.5 Visual-Studio Icons................................................................................... 3205.6 Date/Time ................................................................................................ 3225.7 Internetlinks ............................................................................................. 326

Index ................................................................................................ 329

Page 7: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

1 Einführung

Was ist Scripting?Scripting bezeichnet die Möglichkeit, einzelne Befehle bzw. Programmcode in EPLAN aus-zuführen. Dies geschieht über die sogenannte API (application programming interface, dt. Programmierschnittstelle). Hinter der EPLAN-API verbergen sich alle Funktionen, welche in der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. Diese Programme bauen alle auf dem gleichen Programmcode auf und sind dadurch untereinander kompa-tibel. EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur eine eingeschränkte Schnittstelle. In den verschiedenen Applikationen sind ähnliche bzw. gleiche Funktionen enthalten, z. B. kann man in Fluid und Electric P8 Beschriftungen erzeugen. Einziger Un-terschied ist der Inhalt.

Diese Abläufe werden in EPLAN Actions genannt. Ihnen ist ein eigenes Kapitel gewidmet, da es mehrere Wege gibt, solche Actions auszuführen. Das Wort Scripting bezieht sich meis-tens nur auf Scripte, welche Sie ab der Version Compact nutzen können. Um weitere Befeh-le oder Funktionen ausführen zu können, benötigen Sie das API-Modul von EPLAN. In diesem Buch gehe ich aber ausschließlich auf den Standardumfang der Compact-Version ein.

Was sind Scripte?Scripte sind kleine Programmcodes. Diese können in zwei Programmiersprachen erstellt werden:

� Microsoft C# (C-Sharp) � Microsoft VB.NET (Visual-Basic.NET)

Ich werde in den folgenden Kapiteln nur Beispiele in C# bereitstellen, da EPLAN mit die-ser Sprache fertigen Code generiert und dadurch eine optimale Vorlage liefert. Ein Script ist nicht alleine ausführbar. Es muss in Verbindung mit EPLAN gestartet werden. Die verschiedenen Möglichkeiten werden in einem eigenen Kapitel erklärt.

Was können Scripte?Vieles, aber nicht alles. EPLAN stellt eine Reihe von Befehlen bereit, schränkt diese aber auf einen überschaubaren Bereich ein. Dadurch wird dem Anwender der Einstieg enorm erleichtert. Auf diese Weise wird auch sichergestellt, dass keine ungewollten Aktionen, z. B. auf das Projekt, ausgeführt werden.

Page 8: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

4  1 Einführung

Vielleicht kennen Sie die immer wiederkehrende Aufgabe, Beschriftungen auszugeben. Je Projekt sind mehrere Exporte nötig, und jedes Mal muss das Beschriftungsschema neu ausgewählt, zusätzlich der Ordner benannt und ein Dateiname vergeben werden. Mit ei-nem Script können Sie all diese Arbeitsschritte zusammenfassen und z. B. auf einen Menüpunkt legen. Sie können auch mehrere Beschriftungen nacheinander über diese Funktion erzeugen. Auch der PDF-Export kann automatisiert werden. Möchten Sie zur Änderungsverfolgung z. B. automatisch beim Schließen des Projektes das PDF erzeugen? Kein Problem mit einem Script. Sie wollen Schnittstellen schaffen, Informationen in EPLAN aus z. B. Ihrem ERP zu nutzen? Kein Problem, über die Import-Funktion geht das auf Knopfdruck. Auch die Weitergabe von Informationen aus EPLAN in andere Systeme klappt problemlos. Oft muss zwischen verschiedenen Einstellungen hin- und hergewech-selt werden. Das Suchen in den unzähligen Settings in EPLAN ist mühselig. Schreiben Sie ein Script für Ihre Konfigurationen, und erledigen Sie das unter der Projektierung.

Eine kleine Auflistung der Möglichkeiten, welche mit Scripten realisiert werden können:

� Beschriftungen automatisieren � PDF-Export � Backup � eigene Menüs/Toolbars erstellen � grafische Formulare mit z. B. Buttons, Checkboxen, Auswahldialogen � Eigenschaften verändern

� Projekteigenschaften � Seiteneigenschaften

� Einstellungen � Lesen � Schreiben

... und das sind noch lange nicht alle Funktionen. Durch das Erweitern des Programm-codes können mehr Funktionen hinzugefügt werden.

Was kann das API-Modul im Vergleich zum Scripting?Um den Unterschied etwas deutlicher zu machen, anbei eine kleine Auflistung der wich-tigsten Merkmale des API-Moduls in EPLAN:

� Zugriff auf das komplette EPLAN-Datenmodell � einfacheres Lesen von Objekten � Zugriff auf mehr Objekte � direkter Zugriff auf Projekteigenschaften/Projekteinstellungen � Lesen/Schreiben von Daten der Artikeldatenbank � mehr verfügbare Actions � Online-Debugging

Page 9: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

1.1 Toolbars – der erste Schritt zum Script 5

HINWEIS: Debugging nennt man im Allgemeinen das Auffi nd en von Feh-lern. Der Debugger ist ein Werkzeug (Programm) zum Testen der Applikati-on: � Steuerung des Programmablaufs (Haltepunkte können gesetzt werden) � Variablen können auf ihren Wert hin überprüft werden.

■■ 1.1■ Toolbars – der erste Schritt zum Script

1.1.1  Toolbars anpassen

In EPLAN gibt es die Möglichkeit, eigene Toolbars zu erstellen. Aber was hat das mit Scrip-ting zu tun? Ein Script ist eigentlich eine Erweiterung der Funktionalität einer Symbolleis-te. In einer benutzerdefi nierten Toolbar können vordefi nierte Befehle ausgeführt werden. Dies sind alle von EPLAN offi ziell unterstützen Actions, welche zudem in der Hilfe doku-mentiert sind. Diese Befehle werden auch in einem Script verwendet. Vorteil vom Script gegenüber der Toolbar ist, dass mehrere Actions ausgeführt werden können. In der Sym-bolleiste müsste man mehrere Schaltfl ächen erstellen, um zum gleichen Ergebnis zu kom-men. Bei der Menge an Möglichkeiten wird der Arbeitsbereich schnell unübersichtlich.

Bild 1.1Die Anpassung der Symbolleiste über die Menüliste

Page 10: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

6  1 Einführung

Erstellen wir uns eine neue Toolbar. Wir haben zwei Möglichkeiten, Symbolleisten zu er-stellen/bearbeiten (beide Wege haben den gleichen Eff ekt):

� Optionen > Symbolleisten > Anpassen... � Rechtsklick auf die grafi sche Oberfl äche > Kontextmenü > Anpassen...

Nun erscheint das Formular zum Editieren der Toolbars. Im ersten Tab Symbolleisten wer-den alle bestehenden Toolbars aufgelistet. Mit der Checkbox wird angezeigt, ob die Tool-bar sichtbar ist oder nicht.

Deklaration von Steuerelementen: � Tab : Karteikarte oder auch Reiter genannt

� Checkbox : Kästchen, welches „an-/abgehakt“ werden kann

� Button : Schaltfl äche in einem Fenster-Dialog

Bild 1.2Die Anpassung der

Symbolleiste über das Kontextmenü

Page 11: EPLAN Electric P8 automatisieren - · PDF filein der Plattform (Electric P8, Fluid, PPE, Pro-Panel) vorhanden sind. ... EPLAN Cabinet ist hierbei eine Ausnahme, denn es bietet nur

1.1 Toolbars – der erste Schritt zum Script 7

� Toolbar: Symbolleiste

� Icons : Bild-Schaltfl ächen auf einer Toolbar

Bild 1.3 Dialog Symbolleisten anpassen

Zusätzlich gibt es Anzeigeeinstellungen:

� Flache Schaltfl ächen gibt an, wie die einzelnen Icons dargestellt werden. Da sich diese Option in Windows 7 fast nicht sichtlich auswirkt, stammen die hier gezeigten Icons aus Windows XP:

� Flache Schaltfl ächen aktiviert

� Flache Schaltfl ächen deaktiviert � QuickInfo ist der Infotext, welcher erscheint, wenn man die Maus über die Schaltfl äche bewegt. Bei Windows-Programmen wird hier auch oft von Tooltip gesprochen.