EPLAN-Scripts

EPLAN Scripting & API Dokumentation erstellen

Wie schon öfters angemerkt, gibt es eine API-Dokumentation von EPLAN, welche leider nur mit dem Erwerb der API-Entwickler einsehbar ist.

Besonders schade daran ist, dass Scripting dort sehr gut beschrieben wird.

Da die Dokumentation von EPLAN selbst auch automatisch generiert wird, hat sich Daniel Papp die Mühe gemacht und das Ganze mal mit Sandcastle getestet.

Mit seiner Anleitung kann man sich eine eigene Scripting & API Dokumentation erstellen:

http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html
Nicht erschrecken! Wir brauchen nur Step 1, Step 4 und den Anfang von 5.
Anstelle der in der Anleitung erzeugten Guy.dll + Guy.xml, binden wir die folgenden Dateien aus dem “..\EPLAN\Platform\[version]\Bin” Ordner ein:

  • Eplan.EplApi.AFu.dll
  • Eplan.EplApi.AFu.xml
  • Eplan.EplApi.Baseu.dll
  • Eplan.EplApi.Baseu.xml
  • Eplan.EplApi.DataModelu.dll
  • Eplan.EplApi.DataModelu.xml
  • Eplan.EplApi.EServicesu.dll
  • Eplan.EplApi.EServicesu.xml
  • Eplan.EplApi.Guiu.dll
  • Eplan.EplApi.Guiu.xml
  • Eplan.EplApi.HEServicesu.dll
  • Eplan.EplApi.HEServicesu.xml
  • Eplan.EplApi.MasterData.dll
  • Eplan.EplApi.Ppeu.dll
  • Eplan.EplApi.Ppeu.xml
  • Eplan.EplApi.Systemu.dll
  • Eplan.EplApi.Systemu.xml

In den Project Properties (Taste F4) kann man noch ein paar Einstellungen wie den Ausgabepfad, Format, Titel, Name etc. vornehmen.
Die Durchlaufzeit des Build-Prozesses kann je nach Rechnerleistung relativ hoch sein (Intel Core2, 2,4GHz ca. 50min).
Es werden auch Tausende Warnungen wegen fehlender Referenzen ausgegeben. Diesen bin ich nicht weiter nachgegangen. Das Ergebnis ist dennoch brauchbar.
Der User, und Migration Guide aus der Originaldoku fehlen. Der Rest scheint sehr ähnlich zu sein.
Man könnte so auch eigene Doku anfügen, oder sich nur die für das Scripting relevanten Bibliotheken (*.AFu.*; *.Baseu.*; *.Guiu.*) erzeugen.

Von |2017-11-09T11:22:20+01:002015-04-29|EPLAN, EPLAN-Scripts|

ExternalTestAssembly

Daniel Papp ist immer fleißig, vielen Dank nochmal an dieser Stelle.

Aufgrund der Implementierung von CAE-Consulting ist nun bekannt wie man DLLs im Scripting nutzen kann. Somit kann man auch Excel oder SQL bedienen… eigentlich Alles außer der immer noch kostenpflichtigen EPLAN API…

Vielen Dank für das Beispiel! Wie gewohnt findet man die Daten auf Daniels GitHub Repo.

using System;
using System.Reflection;
using System.Windows.Forms;

namespace ExternalTestAssembly
{
    public class Script
    {
        [Start]
        public void Run()
        {
            //AbsoluteAssemblyPath: for example "C:\Users\Public\EPLAN\Data\Binaries\MyWPFControlLibrary.dll
            Assembly myAssembly = Assembly.LoadFrom(@"AbsoluteAssemblyPath");

            //Namespace.ClassName: absolute name of the class to instaciate 
            //"InstAttibute": if the constructor of the class needs some attributes
            Object objectOfTestClass = myAssembly.CreateInstance("Namespace.ClassName", false, BindingFlags.ExactBinding, null, new Object[] {"InstAttibute"}, null, null);

            //Namespace.ClassName: again the class name to get the methode to execute
            //MethodName: Name of the method to execute
            MethodInfo show = myAssembly.GetType("Namespace.ClassName").GetMethod("MethodName");

            //result: remove if methode has no return type (void)
            //"MethodAttribute": attributes for the methode (could also be empty)
            Boolean result = (Boolean)show.Invoke(objectOfTestClass, new Object[]{ "MethodAttribute" });

            //go on with simple scriptcode
            if (result == true)
            {
                MessageBox.Show("Welcome to wonderland!");
            }
            else
            {
                MessageBox.Show("So you're not the chosen one!");
            }
            
        }
    }
}

 

Von |2017-11-09T12:23:40+01:002015-03-26|EPLAN, EPLAN-Scripts|

MainMenuName

Man lernt nie aus…
Menü-Erzeugung ist etwas was man beim EPLAN-Scripting meist als erstes macht… da schaut man sich auch keine Methoden an…

Wie im vorherigen Post erwähnt, habe ich bisl was mit mehreren Oberflächensprachen gemacht. Hier gab es ein Problem wenn man ein Hauptmenü hinzufügen will, denn normalerweise gibt man ja den Namen an (z.B. “Hilfe”). Aber im englischen heißt es eben anders…

Dafür hat EPLAN die Enumeration MainMenuName implementiert, was eigentlich immer der empfohlene Weg wäre:

public enum MainMenuName {
  eMainMenuProject = 0,
  eMainMenuPage,
  eMainMenuEdit,
  eMainMenuView,
  eMainMenuProjectData,
  eMainMenuFind,
  eMainMenuOptions,
  eMainMenuUtilities,
  eMainMenuWindow,
  eMainMenuHelp,
  eMainMenuInsert,
  eMainMenuLayoutspace,
}

Die Verwendung sieht wie folgt aus:

uint menuId = menu.AddMainMenu("MyMenu", Eplan.EplApi.Gui.Menu.MainMenuName.eMainMenuHelp,
    "MyMenu", "ActionName", "Description", 1);

Hätte ich das eher Gewusst das besser recherchiert als ich das Buch geschrieben habe, wäre die Info eher gekommen :^)

Von |2017-11-09T12:23:40+01:002015-03-09|EPLAN, EPLAN-Scripts|

GuiLanguage

Es ist schön mit MultiLanguageStrings zu arbeiten, wenn man z.B. ein Menü in verschiedenen Oberflächensprachen darstellen möchte.

Leider gibt es keine Methodenüberlagerung für ein Popup-Menü, welches MultiLanguageStrings erlaubt.
Aus diesem Grund habe ich einen Weg gesucht um dies trotzdem zu realisieren.
Geht auch, mit umgekehrten Weg… Den MultiLanguageString per GetStringToDisplay() Methode anzeigen…

Hier benötigt man aber auch die GuiLanguage, welche man wie folgt herausfindet:

ISOCode.Language guiLanguage = new Languages().GuiLanguage.GetNumber();
Von |2017-11-09T12:23:40+01:002015-03-08|EPLAN, EPLAN-Scripts|

DXF/DWG mit Schema exportieren

Kurze Info, da es mir aufgefallen ist:
Möchte man über die Action export DXF bzw. DWG Dateien exportieren, fehlt hier der Type für PROJECTSCHEME & PAGESCHEME.

Es gibt diese Parameter, aber sind nur in der API-Dokumentation aufgeführt, nicht in der EPLAN-Hilfe. Ich habe es an EPLAN weitergegeben damit diese ergänzt werden. Der Parameter ist erst ab Version 2.4 verfügbar!

DXFDWGPROJECTSCHEME: Export a project in DXF or DWG format. All settings are read from scheme, also the DXF or DWG format.
DXFDWGPPAGESSCHEME: Export pages in DXF or DWG format. All settings are read from scheme, also the DXF or DWG format.

Used together with PAGENAMEn paramenters(e.g. /PAGENAME1:=AP+ST1/2 /PAGENAME2:=AP+ST1/4 /PAGENAME3:=AP+ST1/7 etc.) or SELn paramenters (e.g. /SEL1:38/4/12/0 (result from StorableObject.ToStringIdentifier()))

Generell frage ich mich, warum der Teil in der API-Hilfe, welcher sich dem Scripting widmet und echt gut ist, nicht in die EPLAN-Hilfe wandert…
Ist wohl der Aufwand das alles zu übersetzen, da die API-Hilfe nur in Englisch verfügbar ist. Leider gibt EPLAN diese nicht mit der EPLAN Installation heraus.

Von |2017-11-09T12:23:40+01:002015-03-06|EPLAN, EPLAN-Scripts|
Nach oben