EPLAN-API

Alles rund um die API in EPLAN

BMK anpassen / ändern

Das sichtbare BMK anpassen… hört sich erstmal einfach an.

Ist aber leider nicht ganz so einfach in der API, zumindest wenn man nicht weiß wie. So ging es mir und dank dem grandiosen EPLAN API Support sind wir auch auf eine Lösung gekommen, welche meinen Anforderungen entspricht:

  • Optional: neues BMK zuweisen
  • BMK korrekt auflösen

Ist z.B. das BMK -MAA1 nicht korrekt eingegeben worden (z.B. alles im Feld Zähler) dann löst der Code das BMK korrekt auf (wie in der Oberfläche).

functionBase.VisibleName = functionBase.VisibleName; // Same device tag
new NameService(newPage).AdjustFullName(functionBase);
Von |2023-02-28T10:33:51+01:002023-02-28|EPLAN, EPLAN-API|

EADN-Signing

Bei der EPLAN API-Entwicklung müssen die DLLs signiert werden. Das manuelle Hochladen im Portal, der Download und die Verteilung der Daten kostet viel Zeit…
Das ist aber nun Geschichte. EPLAN stellt mit der EADN-Signing REST-API eine Schnittstelle bereit mit der dieser Workflow komplett automatisiert werden kann.

In der tollen und interaktiven Doku ist alles zu finden, was das Herz begehrt. Sogar ein fertiges Powershell-Script stellt EPLAN bereit, um z.B. im Post-Build Prozess die Signierung automatisch durchzuführen.

Derzeit gibt es noch keine automatische Freischaltung für diesen Dienst in der EPLAN-Cloud. Für die Freischaltung einfach bei EPLAN im Vertrieb nachfragen.

Von |2022-09-08T10:27:13+02:002022-09-08|EPLAN, EPLAN-API|

EplApiReferenceAction

EPLAN lädt DLLs via Reflections nach. Hierfür wird in bekannten Verzeichnissen nach den Dateien gesucht. Wird aber z.B. eine Resource-Datei nicht gefunden, kann es zu Fehlern kommen. Einen Workaround habe ich hier beschrieben.

Vom grandiosen EPLAN API Support habe ich nun eine Info über eine interne Action bekommen, mit der man angeben kann in welchen Verzeichnissen zusätzlich gesucht werden soll.

Somit kann man bei Register / Unregister zusätzliche Verzeichnisse angeben, in denen sich z.B. die Resource-Dateien befinden. Die Action gibt es schon immer in EPLAN und ist somit an keine Version gebunden.

Action

EplApiReferenceAction
When a reference cannot found, add a path for it and it will searched also.

Parameter

  • register Full file name of the assembly to be used as reference
  • unregister Full file name of the assembly to be unregistered
Von |2022-08-26T08:45:17+02:002022-08-26|EPLAN, EPLAN-API|

WPF API-Addins mit Übersetzungen

Einige unserer Produkte sind auch mehrsprachig. Einige API-Addins besitzen eine GUI mit WPF, welche die Übersetzungen aus einer Resource-Datei in einer referenzierten Assembly laden.

 

Leider gibt es beim Öffnen des Windows dann folgenden Fehler:

The file or assembly LocalizationExample.Translations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null or a dependency of it was not found.
Assembly loader: LocalizationExample.Translations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null not found
The file or assembly LocalizationExample.Translations, PublicKeyToken=null or a dependency of it was not found.
Assembly loader: LocalizationExample.Translations, PublicKeyToken=null not found
The LocalizationExampleAction action with the /_cmdline:LocalizationExampleAction parameters of the LocalizationExample.EplAddIn.Gui module has failed. Could not load file or assembly 'LocalizationExample.Translations, PublicKeyToken=null' or one of its dependencies. Das System kann die angegebene Datei nicht finden.

 

Ich habe mir mit Fusion++ mal angesehen, was nicht geladen wurde:

LOG: Attempting download of new URL file:///C:/Users/moz/AppData/Roaming/EPLAN/ShadowCopyAssemblies/8980/LocalizationExample.EplAddIn.Gui/bin/en-US/LocalizationExample.EplAddIn.Gui.resources.DLL.
LOG: Attempting download of new URL file:///C:/Users/moz/AppData/Roaming/EPLAN/ShadowCopyAssemblies/8980/LocalizationExample.EplAddIn.Gui/bin/en-US/LocalizationExample.EplAddIn.Gui.resources/LocalizationExample.EplAddIn.Gui.resources.DLL.
LOG: Attempting download of new URL file:///C:/Users/moz/AppData/Roaming/EPLAN/ShadowCopyAssemblies/8980/LocalizationExample.EplAddIn.Gui/bin/en-US/LocalizationExample.EplAddIn.Gui.resources.EXE.
LOG: Attempting download of new URL file:///C:/Users/moz/AppData/Roaming/EPLAN/ShadowCopyAssemblies/8980/LocalizationExample.EplAddIn.Gui/bin/en-US/LocalizationExample.EplAddIn.Gui.resources/LocalizationExample.EplAddIn.Gui.resources.EXE.

 

Der Assembly-Loader sucht nach der falschen Datei… mhh, komisch. Denn der Zugriff außerhalb von WPF, sprich im C# Code, funktioniert ohne Probleme.
Meine Vermutung, dass WPF die Resource-Datei nicht findet hat sich betätigt. Darum greife ich nun BEVOR ich ein WPF-Control erstelle, einmal auf die Assembly zu.

Hab das die Lösung auf GitHub mit einem Beispielprojekt dokumentiert.

Von |2021-09-16T08:38:57+02:002021-09-16|EPLAN, EPLAN-API|
Nach oben