EPLAN Ribbon erstellen

In der Beta von EPLAN 2022 hatte ich hier schon beschrieben, wie man eigene Befehle im Menüband erzeugt.
Ab EPLAN 2022 Update 1 ist es nun möglich auch eigene Icons zu definieren. Ich habe mal ein erweitertes Beispiel erstellt auch mit Muli-Language-Support:

Bei Laden eines Scriptes via Add-On oder Action RegisterScript gibt es Stand EPLAN 2022 Update 1 Probleme. Hier sollte der Tab in [DeclareEventHandler("Eplan.EplApi.OnMainStart")] hinzugefügt und in [DeclareEventHandler("Eplan.EplApi.OnMainEnd")] entfernt werden.

 

using System.Windows.Forms;
using Eplan.EplApi.Base;
using Eplan.EplApi.Gui;
using Eplan.EplApi.Scripting;

class Example
{
  private const string ACTION_NAME = "RibbonAction";

  private MultiLangString TAB_NAME
  {
    get
    {
      MultiLangString tabName = new MultiLangString();
      tabName.AddString(ISOCode.Language.L_de_DE, "Mein Tab");
      tabName.AddString(ISOCode.Language.L_en_US, "My Tab");
      return tabName;
    }
  }

  [DeclareRegister]
  public void Register()
  {
    RibbonBar ribbonBar = new RibbonBar();
    RibbonTab ribbonTab = ribbonBar.GetTab(TAB_NAME, true);
    if (ribbonTab == null)
    {
      ribbonTab = ribbonBar.AddTab(TAB_NAME);
    }

    // Simple
    RibbonCommandGroup ribbonCommandGroup1 = ribbonTab.AddCommandGroup("My group 1");
    RibbonIcon ribbonIcon1 = new RibbonIcon(CommandIcon.Accumulator);
    ribbonCommandGroup1.AddCommand("My action 1", ACTION_NAME, ribbonIcon1);

    // Extended
    MultiLangString groupText = new MultiLangString();
    groupText.AddString(ISOCode.Language.L_de_DE, "Meine Gruppe 2");
    groupText.AddString(ISOCode.Language.L_en_US, "My group 2");
    RibbonCommandGroup ribbonCommandGroup2 = ribbonTab.AddCommandGroup(groupText);

    MultiLangString commandText = new MultiLangString();
    commandText.AddString(ISOCode.Language.L_de_DE, "Meine Aktion 2");
    commandText.AddString(ISOCode.Language.L_en_US, "My action 2");

    MultiLangString tooltip = new MultiLangString();
    tooltip.AddString(ISOCode.Language.L_de_DE, "Mein ToolTip");
    tooltip.AddString(ISOCode.Language.L_en_US, "My tooltip");

    MultiLangString description = new MultiLangString();
    description.AddString(ISOCode.Language.L_de_DE, "Meine Beschreibung");
    description.AddString(ISOCode.Language.L_en_US, "My description");

    string imagePath = @"C:\test\test.svg";
    RibbonIcon ribbonIcon2 = ribbonBar.AddIcon(imagePath);
    ribbonCommandGroup2.AddCommand(commandText, ACTION_NAME, tooltip, description, ribbonIcon2);
  }

  [DeclareUnregister]
  public void UnRegister()
  {
    RibbonBar ribbonBar = new RibbonBar();
    RibbonTab ribbonTab = ribbonBar.GetTab(TAB_NAME, true);
    if (ribbonTab != null)
    {
      ribbonTab.Remove();
    }
  }

  [DeclareAction(ACTION_NAME)]
  public void Function()
  {
    MessageBox.Show("Action wurde ausgeführt!");
  }
}
Von |2021-12-07T09:05:07+01:002021-12-04|EPLAN, EPLAN-Scripts|

Eplan.EplApi.MasterData in Scripting verfügbar

Ein kleiner Schritt in der EPLAN Versionsnummer, ein großer Schritt im Scripting. Ab Version EPLAN 2022 Update 1 ist es nun möglich auf fast alle Klassen in Eplan.EplApi.MasterData im Scripting zuzugreifen. Ausnahmen (inkl. Unterklassen):

  • MDSymbolLibrary
  • MDSymbolLibraryPropertyList
  • MDSymbol
  • MDSymbolPropertyList
  • MDSymbolVariant
  • MDTranslationDatabase

EPLAN hat dem Thema auch ein kleines Kapitel in der Hilfe gewidmet.

Von |2021-11-24T14:15:53+01:002021-11-24|EPLAN, EPLAN-Scripts|

EPLAN 2022: Scripting Neuerungen

2021-06-04

Die Betaversion von EPLAN 2022 ist nun verfügbar. Folgende Änderungen an den Actions habe ich aus den News entnommen.

 

2021-08-05

Die API-Hilfe ist nun auch verfügbar und ich habe die Listen ergänzt.

 

EPLAN 2022 ist noch in Beta. Die Actions könnten sich noch ändern.

 

Entfernt

Hinzugefügt

Von |2021-08-05T08:08:41+02:002021-08-04|EPLAN, EPLAN-API, EPLAN-Scripts|

EPLAN Ribbon erstellen

Update 2021-12-04:

Ich habe ein neues Beispiel hier erstellt.


Die Beta zu EPLAN 2022 läuft, und ich bekam schon ein paar Anfragen, ob es möglich ist eigene Ribbons zu erstellen: Ja kann man 🥳

Darum hier mal der Beispielcode:

[DeclareRegister]
public void Action()
{
  RibbonBar ribbonBar = new RibbonBar();
  RibbonTab ribbonTab = ribbonBar.AddTab("Suplanus");
  RibbonCommandGroup ribbonCommandGroup = ribbonTab.AddCommandGroup("MyGroup");
  ribbonCommandGroup.AddCommand("MyButton", "MyAction", CommandIcon.Accumulator);
}
EPLAN 2022 ist noch in Beta. Der Code könnte sich noch ändern.
Von |2021-12-04T13:23:50+01:002021-07-15|EPLAN, EPLAN-Scripts|

GetProperty

Nach langer Zeit mal wieder was zu EPLAN.
Frank hat hier einen Weg gepostet, um Eigenschaften aus dem GED direkt im Script zu lesen. Anscheinend funktioniert dies nur mit NICHT Read-Only Eigenschaften.

Vielen Dank!

using System.Windows;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;

public class Script
{
  [Start]
  public void XEsGetPropertyAction_Start()
  {
    CommandLineInterpreter cli = new CommandLineInterpreter();
    ActionCallingContext acc = new ActionCallingContext();

    string propertyValue = string.Empty;

    acc.AddParameter("PropertyId", "20100"); //20100 = PartNumber
    acc.AddParameter("PropertyIndex", "1");
    cli.Execute("XEsGetPropertyAction", acc);
    acc.GetParameter("PropertyValue", ref propertyValue);

    MessageBox.Show(propertyValue);
  }
}
Von |2021-03-11T14:05:33+01:002021-03-11|EPLAN, EPLAN-Scripts|