EPLAN-Scripts

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|

PdfsByStructure

Sander Zuur hatte auf Discord einige Fragen wie man denn PDFs pro Strukturkennzeichen exportieren kann. Freundlicherweise hat er das Script für alle bereitgestellt.
Vielen Dank 🍪

Aufrufparameter:

  • sProjectName: The project being processed, If empty it’s expected that its in user GUI mode, at which point it will take the currently selected project and additionally ask for a filter for the structure.
  • sOptionFull: if true/1 then a full PDF of the project is exported
  • sOptionByMountingLocation: if true/1 then a PDF per cabinet of the project, including all pages in an other structure which contain an object of that cabinet is exported.
  • sOptionBySystem: Optional, if true/1 then a PDF per system of the project, including all pages in an other structure which contain an object of that system is exported.
  • sOptionOnlyLastNodes: if true/1 then only the lowest level of a structure node is exported.
  • sDocumentFilterSet: select a datafilter set possible values: ‘ASBUILT’.

Download: PdfsByLocation

 

Von |2022-11-16T12:05:19+01:002022-11-16|EPLAN, EPLAN-Scripts|

ListSelectDecisionContext

Seit EPLAN 2022 gibt es den ListSelectDecisionContext welcher einen Auswahldialog mit unterschiedlichen Werten anzeigt. Gefällt mir super (wusste aber nichts davon).

StringCollection entries = new StringCollection();
entries.Add("Foo");
entries.Add("Bar");
ListSelectDecisionContext listSelectDecision = new ListSelectDecisionContext(entries, "Foo", "List");
listSelectDecision.AllowMultiSelect = false;
    
var result = new Decider().Decide(listSelectDecision);
if (result == EnumDecisionReturn.eOK)
{
  MessageBox.Show(listSelectDecision.SelectedEntry);
}
Von |2022-10-12T11:07:43+02:002022-10-12|EPLAN, EPLAN-Scripts|
Nach oben