Blog

EPLAN-API: Kabellänge in Einheit setzen

Aufgrund eines aktuellen Projektes bin ich in Berührung mit der Klasse UnitParser gekommen. Hat mir ziemlich Kopfschmerzen bereitet, aber mit Hilfe vom (super) EPLAN-Support konnte ich mein Vorhaben realisieren.

Zur Kabellänge sollte ein gewisser Wert (in Meter) addiert werden. Generell kein Problem.
Aber man kann in EPLAN die Einheit am Kabel selbst bestimmen. So kann die Projekteinstellung Meter sein, aber am Kabel kann ein Wert in Millimeter angegeben werden.

Dadurch ergibt sich folgender Workflow:

  • Konvertierung der Kabellänge zu Länge in Meter
  • Addieren des Offsets
  • Konvertierung der Kabellänge von Meter in die Quell-Einheit (z.B. Millimeter)

 

Schön ist auch dass der ParserParameter gleich ein Property für die Unterdrückung von Nullstellen mitbringt.

private void SetCableLenght(Cable cable, double offsetInMeter)
{
    // Get cable properties
    UnitParser unitParserOld = new UnitParser();
    ParserParameter parserParameterOld = new ParserParameter();
    parserParameterOld.Group = UnitGroup.Length;
    parserParameterOld.SuppressFloatingZeroes = true; // remove trailling zeros

    string oldLengthInSourceUnit = cable.Properties.FUNC_CABLELENGTH;
    unitParserOld.Set(oldLengthInSourceUnit, parserParameterOld);

    // get the right enum
    String unitString = unitParserOld.GetUnit();
    foreach (Unit unit in Enum.GetValues(typeof(Unit)))
    {
        if (unit.ToString() == "Length_" + unitString)
        {
            parserParameterOld.UnitID = unit;
            break;
        }
    }

    // calc in meter
    ParserParameter parserParameterNew = new ParserParameter();
    parserParameterNew.UnitID = Unit.Length_m;
    double oldLengthInMeter = unitParserOld.ValueToUnit(parserParameterNew);
    double newLengthInMeter = oldLengthInMeter + offsetInMeter;
    UnitParser unitParserNew = new UnitParser();
    unitParserNew.Set(newLengthInMeter, "m", parserParameterNew);

    // calc in source unit
    string newLengthInSourceUnit = unitParserNew.ToDisplay(parserParameterOld);
    cable.Properties.FUNC_CABLELENGTH = newLengthInSourceUnit;
}
Von |2015-05-06T08:44:11+02:002015-05-06|EPLAN|

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|

Postbuild Befehlszeile ApiAddin

Ich muss selber immer nachschauen oder kopier mir es, darum schreib ich es hier mal auf :^)

Bei einem EPLAN ApiAddin ist es praktisch wenn die fertige DLL gleich ins Zielverzeichnis kopiert wird. In Visual Studio kann man das per Postbuild-Befehlszeile automatisieren:

COPY /Y "$(TargetDir)$(ProjectName).dll" "C:\Program Files (x86)\EPLAN\Platform\2.4.4\Bin\$(ProjectName).dll"

2015-04-28_09-46-33

Kurz zur Erklärung:

  • /Y: Unterdrückt die Bestätigungsaufforderung vor dem Überschreiben vorhandener Zieldateien.
  • $(TargetDir): Eingestellte Ausgabeverzeichnis
  • $(ProjectName): Projektname (sollte dem der DLL entsprechen)
Von |2017-11-09T11:24:11+01:002015-04-28|EPLAN, EPLAN-API|

ReadSettings

Heute mal wieder was kostenloses…

Es gibt ja die Möglichkeit per Scripting Einstellungen zu setzen (Benutzer / Station / Firma). Da wäre es doch nett wenn man gleich mehre setzen könnte. Per Toolbar geht es mit EPLAN Boardmitteln ja nur einzeln.

2015-04-28_12-59-04

Mit ReadSettings können ganze Knoten gesetzt werden. Passt man das XML an, können auch einzelne / unterschiedliche Einstellungen geändert werden.

Somit hat man z.B. eine Umschaltung der Artikeldatenbank auf Knopfdruck.

 

Download ReadSettings

 

Von |2015-04-28T13:23:40+02:002015-04-28|EPLAN, ShopForProcess|

EPLAN Hilfe Online

Hab mir die Beta noch nicht angeschaut, nur mal gestartet. Aber was mich gleich interessierte war das neue Hilfesystem.
Finde es klasse dass EPLAN hier mal, die ohnehin schon gute Hilfe, aktualisiert hat.

Da ist mir aufgefallen dass die Hilfe auch Online verfügbar ist und das (zum Glück) ohne Anmeldung.

Wer die Hilfe mal anschauen möchte, kann das unter eplan.help tun!
Man sollte dazusagen, dass dies noch Beta ist.

Von |2015-04-16T10:10:30+02:002015-04-16|EPLAN|
Nach oben