Skript

EPLAN Ribbon mit Built-In Befehlen & RibbonCreator

Seit EPLAN 2022 war der Wunsch bei vielen Usern da, auch bestehende Commands von EPLAN in einer Registerkarte zu nutzen. Mit EPLAN 2024 ist dies nun möglich… Leider aber nur per Scripting / API.

Mit der Methode AddCommandWithId() kann eine “Command ID” übergeben werden, welcher der von EPLAN entspricht.

Beispiel für Strukturkennzeichenverwaltung:

const int commandMenuId = 35089;
var tab = ribbonBar.AddTab("CustomTab");
var commandGroup = tab.AddCommandGroup("Group1");
var commandAction = commandGroup.AddCommandWithId(commandMenuId);

Sind Buttons z.B. Drop-Down-Buttons vorhanden, wie bei der Artikelverwaltung, werden diese auch so übernommen:

Die Command ID bekommt Ihr über den Diagnose-Dialog (STRG+^):

Leider sind derzeit nicht alle Commands auch mit IDs im Diagnose-Dialog versehen (z.B. Artikelverwaltung):

Darum haben wir eine Auflistung aller Commands mit deren ID aus dem EPLAN Standard Ribbon exportiert und im ShopForProcess.com für euch frei zugänglich aufgelistet (unter “Anleitung” zu finden).

 

Denn wir haben diese Funktionalität gleich in ein fertiges Produkt gekippt: RibbonCreator

  • Einfaches Verteilen von Ribbons
  • Rechteverwaltung pro Ribbon
  • Simple UI um Ribbons zu konfigurieren
  • EPLAN Commands
  • Custom Actions

Von |2024-02-06T16:58:29+01:002024-02-06|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|

PopUpMenu

In meinem Beitrag zum Erstellen eines Ribbons in EPLAN, gab es mehrfach den Wunsch eigene Untermenüs zu definieren.
Das ist leider so nicht direkt möglich.

Ich habe ein Script gebaut, dass man per Befehl im Menüband aufrufen kann.

 

Befehlszeile:

PopUpMenu /Items:"Item 1;TestAction;Tooltip 1|Item 2;TestAction;Tooltip 2|Item 3;TestAction;Tooltip 3"

Es werden alle Menü-Einträge übergeben, mit Text;Action;Tooltip. In meinem Beispiel drei.

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

internal class PopUpMenu
{
  [DeclareAction("PopUpMenu")]
  public bool ActionPopUpMenu(ActionCallingContext acc)
  {
    // Get items
    string itemsString = null;
    acc.GetParameter("Items", ref itemsString);

    if (string.IsNullOrEmpty(itemsString))
    {
      return false;
    }

    ContextMenuStrip menu = new ContextMenuStrip();
    var itemsSplit = itemsString.Split('|');
    foreach (var itemSplit in itemsSplit)
    {
      var split = itemSplit.Split(';');
      if (split.Length < 2)
      {
        new Decider().Decide(EnumDecisionType.eOkDecision, "Wrong parameter value.", "PopUpMenu",
                             EnumDecisionReturn.eOK, EnumDecisionReturn.eOK, "PopUpMenu", false,
                             EnumDecisionIcon.eFATALERROR);
        return false;
      }

      // Create item
      ToolStripMenuItem menuItem = new ToolStripMenuItem();
      string text = split[0];
      menuItem.Text = text;

      // Action
      string action = split[1];
      menuItem.Click += (sender, args) => { new CommandLineInterpreter().Execute(action); };

      // Tooltip
      if (split.Length > 2)
      {
        string tooltipText = split[2];
        menuItem.ToolTipText = tooltipText;
      }

      menu.Items.Add(menuItem);
    }

    menu.Show(Cursor.Position);

    return true;
  }

  [DeclareAction("TestAction")]
  public void ActionTest()
  {
    MessageBox.Show("Hello!");
  }
}
Von |2022-11-30T16:55:35+01:002022-11-30|EPLAN, EPLAN-Scripts|
Nach oben