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|

Kurs: EPLAN Scripting

Spiele nun seit ca. 4 Jahren mit dem Gedanken einen Video-Learning-Kurs für das EPLAN Scripting zu erstellen. Ich lerne selbst sehr gut mit Videos. Es ist entspannter als das Lesen, zumindest für mich. Es ist auch super die Leute zu sehen, wie Sie die Software benutzen oder in meinem Fall Code schreiben.
Hilfreich ist auch zu sehen, wie man mit Problemen und Fehlern umgeht. In Text ist das schwer zu beschreiben oder zu zeigen.

Ich habe den Kurs in zwei Teile aufgeteilt. Im Beginner-Kurs erlangt Ihr einen schnellen Einstieg in das Scripting. Im Expert-Kurs wird dann auf verschiedene Bereiche im Scripting eingegangen.

Alles Beispiele sind wie immer kostenlos für alle verfügbar.

Ich hoffe Euch gefallen die Kurse und bin schon gespannt auf Euer Feedback ♥️

Kurse

Von |2022-11-28T13:34:57+01:002022-11-28|EPLAN, EPLAN-Scripts|
Nach oben