EPLAN-Scripts

Navigatoren einblenden / ausblenden

Dank dem API-Support der wie immer einfach nur toll ist, gibt es nun eine Möglichkeit Navigatoren ein- bzw. auszublenden.
Vielen Dank auch an FrankS der mir den Tip mit den Actions gegeben hat!

Ich hab das mal ausprogrammiert. Mit der Action kann man mehrere Navigatoren (oder einen) umschalten.

Update 2022-11-17
Ab EPLAN Version 2022 heißt der Einstellungsknoten anders:

string schemePath = "USER.WORKSPACE.NAMED";

wird zu:

string schemePath = "USER.WORKSPACE_BCG.NAMED";

Hab das im Script unten schon angepasst.

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

namespace EplanScriptingProjectBySuplanus.ShowNavigators
{
    class ShowNavigators
    {
        [DeclareAction("ShowNavigators")]
        public bool Action(string actionNavigatorVisible)
        {
            // Objects
            var commandLineInterpreter = new CommandLineInterpreter();
            SchemeSetting schemeSetting = new SchemeSetting();
            Settings settings = new Settings();
            string schemePath = "USER.WORKSPACE.NAMED";
            string schemeName = "dummy";

            // SaveWorkspace
            commandLineInterpreter.Execute("SaveWorkspaceAction /Workspacename:dummy");

            // Parse parameter
            var splitGroups = actionNavigatorVisible.Split('|');
            foreach (var splitGroup in splitGroups)
            {
                // Get values
                var splitNavigators = splitGroup.Split(';');
                if (splitNavigators.Length != 2)
                {
                    MessageBox.Show("Invalid parameter", "ShowNavigators - Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return false;
                }

                string navigatorName = splitNavigators[0];
                string visibleText = splitNavigators[1].ToUpper();
                bool visible = visibleText == "TRUE" || visibleText == "1";

                // Settings path e.g.: USER.WORKSPACE_BCG.NAMED.dummy.Data.Visibility.XMacroPdd
                string settingsPath = schemePath + "." + schemeName + ".Data.Visibility." + navigatorName;

                // Hide & Seek :^)
                if (visible)
                {
                    // Show
                    if (!settings.ExistSetting(settingsPath))
                    {
                        commandLineInterpreter.Execute("GfDialogManagerShow /DialogName:" + navigatorName);
                    }
                }
                else
                {
                    // Hide
                    if (settings.ExistSetting(settingsPath))
                    {
                        commandLineInterpreter.Execute("GfDialogManagerHide /DialogName:" + navigatorName);
                    }
                }
            }

            // RemoveWorkspace            
            schemeSetting.Init(schemePath);
            if (schemeSetting.CheckIfSchemeExists(schemeName))
            {
                schemeSetting.RemoveScheme(schemeName);
            }
            

            return false;
        }
    }
}

 

Aufruf erfolgt mit (in diesem Beispiel wird der Seitennavigator sichtbar und der Betriebsmittelnavigator unsichtbar geschaltet):

ShowNavigators /actionNavigatorVisible:"PmPageIndexDialog;true|XNavigatorDlg;false"

Mehrere Navigatoren werden mit dem Pipe-Zeichen “|” getrennt. Pro Navigator muss Semikolon “;” getrennt folgendes angegeben werden:

  • Dialogname
  • Sichtbar (True: wird sichtbar geschaltet, False: wird unsichtbar geschaltet)

 

Die Daten bekommt Ihr wenn der Dialog eingeblendet wurde und Ihr STRG+^ drückt.

 

Download auf GitHub

Von |2022-11-17T10:07:10+01:002017-08-14|EPLAN, EPLAN-Scripts|

Toolbar per Script erzeugen

War mir bis jetzt auch nicht bekannt, aber dank des Beitrages von Franks jetzt schon :^)

// Create Toolbar
string toolbarName = "TEST_Toolbar";
Eplan.EplApi.Gui.Toolbar toolbar = new Eplan.EplApi.Gui.Toolbar();            
toolbar.CreateCustomToolbar(toolbarName, Eplan.EplApi.Gui.Toolbar.ToolBarDockPos.eToolbarFloat, 0, 0, true);

// Add buttons
toolbar.AddButton(toolbarName, 0, "strAction0", @"$(MD_IMG)\Toolbar\MountingPlateHandling\MP_0.jpg", "Tooltip0");
toolbar.AddButton(toolbarName, 1, 0); // Separator
toolbar.AddButton(toolbarName, 2, "strAction2", @"$(MD_IMG)\Toolbar\MountingPlateHandling\MP_90.jpg", "Tooltip2");
// Remove toolbar
toolbar.RemoveCustomToolbar(toolbarName);
Von |2017-11-09T11:16:27+01:002017-08-11|EPLAN, EPLAN-Scripts|

EPLAN 2.7: Scripting Neuerungen

Die Beta läuft ja schon ne Weile und ich hab mich mal hingesetzt und die neuen Action angeschaut. Folgende kamen dazu:

changeLayer
Ändert die grafischen Eigenschaften von Ebenen.
export3D
Exportiert Bauräume in das STEP-Format.
exportNCData
Exportiert NC-Daten
exportProductionWiring
Exportiert Drahtkonfektionierungsdaten in verschiedenen Formaten.
GraphicalLayerTable
Importiert / exportiert Ebenen.
Renumber
Führt eine Nummerierung durch.
XPlaUpdateDetailAction
Detailplanung wird aktualisiert
XPamSelectPart
Artikel aus GUI auswählen
Von |2017-11-09T11:16:27+01:002017-05-22|EPLAN, EPLAN-Scripts|

RunSystemConfigurationDialog

Viele Leute haben in Foren oder Ähnliches schon nach einer Möglichkeit gefragt, wie man die EPLAN Stammdaten komplett umschalten kann.

Damit ist das Verzeichnis $(EPLAN_DATA) gemeint. Somit die Stammdaten.

EPLAN hat in der 2.6 eine Möglichkeit geschaffen, aber warum auch immer nicht dokumentiert. Somit wird es wohl auch (noch?!) nicht offiziell unterstützt.
Draufgekommen bin ich weil in der API-Hilfe etwas von den Befehlszeilenparameter dokumentiert war, da hab ich mal in den DLLs geschaut ob ne neue Action hinzukam.

Mit der versteckten Action RunSystemConfigurationDialog  kann man sich Schemata anlegen, welche dann per Aufrufparameter /SystemConfiguration  aufgerufen werden kann.

Wichtig ist dass er EPLAN mit Admin-Rechten startet, sonst könnt Ihr kein Schema anlegen.

Hier mal eine Bespielkonfiguration, welche ich für die API-Programmierung nutze und deren Aufruf:

"C:\Program Files\EPLAN\Platform\2.6.3\Bin\Eplan.exe" /Variant:"Electric P8" /SystemConfiguration:"API"
Von |2017-11-09T11:16:27+01:002016-12-14|EPLAN, EPLAN-Scripts|

XPrjActionProjectNew

Es gibt eine inoffizielle (somit nicht supportete) EPLAN Action zum Erstellen von Projekten: XPrjActionProjectNew

Parameter:
/SOURCE: Basisprojekt oder Projektvorlage
/TARTGET: Zieldatei (*.elk)
/CREATIONDATE: Erstelldatum (UNIX)
/CREATOR: Ersteller
/QUIET: 0 oder 1 ob Dialoge unterdrückt werden sollen (z.B. Aktualisierung)

Anbei ein Beispiel. Ich habe noch dank dem tollen EPLAN Support einen QuietModeStep eingebaut, da beim Projekt öffnen dann auch Dialog wie z.B. Stammdaten aktualisieren unterdrückt werden.

class XPrjActionProjectNew
{
    [Start]
    public void Function()
    {
        string source = @"G:\ibKastl.EPLAN.2025\Data\Vorlagen\IEC_bas001.zw9";
        string target = @"G:\Downloads\Test.elk";
        string creationDate = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
        string creator = "Neo";

        ActionCallingContext acc = new ActionCallingContext();
        acc.AddParameter("SOURCE", source);
        acc.AddParameter("TARGET", target);
        acc.AddParameter("CREATIONDATE", creationDate);
        acc.AddParameter("CREATOR", creator);
        acc.AddParameter("QUIET", "1");

        using (QuietModeStep quietModeStep = new QuietModeStep(QuietModes.ShowNoDialogs))
        {
            new CommandLineInterpreter().Execute("XPrjActionProjectNew", acc);
        }
    }
}
Von |2024-11-27T11:45:13+01:002016-11-18|EPLAN, EPLAN-Scripts|
Nach oben