| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
| |
| Live aus Schweden: In die Praxis der Produktion geschaut - Eplan LIVE / 07. Mai 2024, eine Pressemitteilung
|
Autor
|
Thema: Eplan Script 2 Einträge Kontextmenü (1689 / mal gelesen)
|
MW1974 Mitglied Elektrokonstrukteur
Beiträge: 4 Registriert: 10.09.2018 P8 2.6 HF4
|
erstellt am: 12. Mai. 2021 15:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte gerne im GED 2 extra punkte in das kontext menü bekommen. Leider bekomme ich nur einen extra punkt hin. Ich habe dieses Beispiel aus der Scripting bibel verwendet. [DeclareMenu] public void MenuFunction() { Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation( "GedEditGuiText", "1002" ); menu.AddMenuItem( contextMenuLocation, "Menüpunkt in Kontextmenü", "MenuAction", true, false ); menu.AddMenuItem( contextMenuLocation, "Menüpunkt 2 in Kontextmenü", "MenuAction2", true, false ); return; } } Kann es sein das es nicht möglich ist mehrere Einträge zu erzeugen? Danke für eure Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 804 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 14. Mai. 2021 08:26 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
|
F.S. Moderator
Beiträge: 1896 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 14. Mai. 2021 08:37 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Wie Jonny schon schrieb, sollte funktionieren wenn es die Actions auch gibt. Dieser Code funktioniert beim mir:
Code:
[DeclareMenu] public void MenuFunction() { Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation( "GedEditGuiText", "1002" ); menu.AddMenuItem( contextMenuLocation, "Menüpunkt in Kontextmenü", "MenuAction", true, false ); menu.AddMenuItem( contextMenuLocation, "Menüpunkt 2 in Kontextmenü", "MenuAction2", false, false ); } [DeclareAction("MenuAction")] public void MenuAction() { MessageBox.Show("MenüAction"); return; } [DeclareAction("MenuAction2")] public void MenuAction2() { MessageBox.Show("MenüAction2"); return; }
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MW1974 Mitglied Elektrokonstrukteur
Beiträge: 4 Registriert: 10.09.2018 P8 2.6 HF4
|
erstellt am: 15. Mai. 2021 14:15 <-- editieren / zitieren --> Unities abgeben:
|
mgolec Mitglied ECAD-Planer
Beiträge: 90 Registriert: 12.02.2018 Pro Panel 2023
|
erstellt am: 16. Mai. 2024 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Hallo allerseits! Wollte nachfragen ob jemand die Actions für Symbol einfügen, Gerät einfügen und Makro einfügen weiß? So dass man das Kontextmenü auf das hin erweitern kann wie es früher war. Also man sollte mit Klick im Kontextmenü in die Symbolauswahl, Artikelauswahl oder in die Makroauswahl kommen. Wäre für Hilfestellung sehr dankbar LG Markus Edit: Habs wie folgt versucht:
Code:
using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Scripting; public class _06_Menues_06_Menuepunkt_in_Kontextmenue { [DeclareAction("MenuAction")] public void ActionFunction() { Thread.Sleep(250); SendKeys.SendWait("{INSERT}"); MessageBox.Show("Action wurde ausgeführt!"); return; }
[DeclareMenu] public void MenuFunction() { Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation( "Editor", "Ged" ); menu.AddMenuItem( contextMenuLocation, "Symbol einfügen", "MenuAction", true, false ); return; } }
[Diese Nachricht wurde von mgolec am 16. Mai. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mgolec Mitglied ECAD-Planer
Beiträge: 90 Registriert: 12.02.2018 Pro Panel 2023
|
erstellt am: 21. Mai. 2024 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
|
F.S. Moderator
Beiträge: 1896 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 22. Mai. 2024 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
|
mgolec Mitglied ECAD-Planer
Beiträge: 90 Registriert: 12.02.2018 Pro Panel 2023
|
erstellt am: 22. Mai. 2024 08:08 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Hallo FrankS Würde gerne die alten Menüpunkte wieder haben im Kontextmenü. Als ContextMenuLocation hab ich das hier angegeben. "GedEditGuiText", "1002" Das dürfte stimmen. LG und Danke für die Antwort, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
Beiträge: 1896 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 22. Mai. 2024 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Dieses Skript funktioniert bei mir in der Plattform 2023: Code:
using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Scripting; public class _06_Menues_06_Menuepunkt_in_Kontextmenue { CommandLineInterpreter CommandLineInterpreter = new CommandLineInterpreter();
[DeclareAction("MenuAction")] public void ActionFunction() { //CommandLineInterpreter.Execute("XEGActionInsertSymRef"); // 2.9 CommandLineInterpreter.Execute("XInsStartModelessDialogAction /Symbol"); // 2023 return; } [DeclareMenu] public void MenuFunction() { Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation( "Editor", "Ged" ); menu.AddMenuItem( contextMenuLocation, "Symbol einfügen", "MenuAction", true, false ); return; } }
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mgolec Mitglied ECAD-Planer
Beiträge: 90 Registriert: 12.02.2018 Pro Panel 2023
|
erstellt am: 22. Mai. 2024 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
|
F.S. Moderator
Beiträge: 1896 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 22. Mai. 2024 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Du kannst in dem Skript die andere CommandLineInterpreter.Execute Zeile (für 2.9) ausprobieren. Ich persönlich würde dir eher raten sich mit dem Einfügezentrum zu beschäftigen, das ist nun mal die Zukunft. ------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mgolec Mitglied ECAD-Planer
Beiträge: 90 Registriert: 12.02.2018 Pro Panel 2023
|
erstellt am: 23. Mai. 2024 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für MW1974
Hallo! Zitat: Original erstellt von F.S.: Du kannst in dem Skript die andere CommandLineInterpreter.Execute Zeile (für 2.9) ausprobieren.
So ein blindes Huhn bin ich schon worden Vielen Dank, jetzt funktioniert das Ding endlich. Super. Ich muss mich wohl wieder mehr mit dem Scripting beschäftigen. Zitat: Original erstellt von F.S.: Ich persönlich würde dir eher raten sich mit dem Einfügezentrum zu beschäftigen, das ist nun mal die Zukunft.
Aktuell arbeitet bei uns keiner mit dem Einfügezentrum. Wir hoffen nur, dass es noch laang so geht wie früher. ^^ Der vollständigkeit halber nocheinmal der Code der bei mir unter Plattform 2023 funtioniert: Vielen Dank nocheinmal für die Hilfe @FrankS :) LG Markus
Code:
using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Scripting; public class GetOldActionsInContextMenu2023 { CommandLineInterpreter CommandLineInterpreter = new CommandLineInterpreter();
//Unterprogramm: Symbol einfügen [DeclareAction("SymbolActionContext")] public void ActionFunction1() { CommandLineInterpreter.Execute("XEGActionInsertSymRef /SymbolLibName:IEC_symbol"); return; } //Unterprogramm: Gerät einfügen [DeclareAction("DeviceActionContext")] public void ActionFunction2() { CommandLineInterpreter.Execute("XDLInsertDeviceAction"); return; } //Hauptprogramm: Kontextmenü um Symbol und Gerät einfügen erweitern [DeclareMenu] public void MenuFunction() { Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation( "Editor", "Ged" ); menu.AddMenuItem( contextMenuLocation, "Symbol einfügen", "SymbolActionContext", true, false ); menu.AddMenuItem( contextMenuLocation, "Makro einfügen", "DeviceActionContext", true, false ); return; } }
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |