| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
| |
 | Automatische Schaltplanerstellung in der Cloud, eine Pressemitteilung
|
Autor
|
Thema: Arbeiten mit Eplan.EplApi.OnPostOpenProject (1149 / mal gelesen)
|
ASSE Mitglied

 Beiträge: 98 Registriert: 12.01.2005 EPLAN Electric P8 2023 Update 4
|
erstellt am: 19. Mrz. 2019 16:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ich möchte im Scripting den Eplan.EplApi.OnPostOpenProject verwenden. In diesem darin enthaltenen Code möchte ich etwas mit dem vom neu geöffnetem Projekt verwendeten $(PROJECTPATH) anstellen. Allerdings wird mir diese Variable immer von dem zuvor markiertem Projekt angezeigt. Wie kann man das umgehen. Beispiel: Projekt A ist geöffnet Ich öffne nun Projekt B. Das Script startet aber meldet den Pfad von Projekt A (vermutlich weil im Seitennavi markiert)
Gruß Florian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
    
 Beiträge: 1924 Registriert: 23.04.2003 EPLAN Electric P8 2025 Prof.
|
erstellt am: 20. Mrz. 2019 07:29 <-- editieren / zitieren --> Unities abgeben:          Nur für ASSE
Hallo, es wird von EPLAN empfohlen das aktuelle Projekt über "selectionset" zu ermitteln. Probier doch mal aus ob es mit folgendem Code im Event besser funktioniert:
Code:
ActionCallingContext acc = new ActionCallingContext(); CommandLineInterpreter oCLI = new CommandLineInterpreter();//Aktuelles Projekt ermitteln string sProjekt = string.Empty; acc.AddParameter("TYPE", "PROJECT"); oCLI.Execute("selectionset", acc); acc.GetParameter("PROJECT", ref sProjekt);
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ASSE Mitglied

 Beiträge: 98 Registriert: 12.01.2005 EPLAN Electric P8 2023 Update 4
|
erstellt am: 20. Mrz. 2019 08:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo, hmm leider gleiches Verhalten. Es wird das vorher markierte Projekt gesetzt (klar, wenn kei Projekt geöffnet ist wird die richtige Variable gesetzt)
Code:
[DeclareEventHandler("Eplan.EplApi.OnPostOpenProject")] public void FunctionOptions() { ActionCallingContext acc = new ActionCallingContext(); CommandLineInterpreter oCLI = new CommandLineInterpreter(); //Aktuelles Projekt ermitteln string sProjekt = string.Empty; acc.AddParameter("TYPE", "PROJECT"); oCLI.Execute("selectionset", acc); acc.GetParameter("PROJECT", ref sProjekt); MessageBox.Show(sProjekt); }
Gruß Florian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
    
 Beiträge: 1924 Registriert: 23.04.2003 EPLAN Electric P8 2025 Prof.
|
erstellt am: 20. Mrz. 2019 09:29 <-- editieren / zitieren --> Unities abgeben:          Nur für ASSE
Ok, dann geht es wohl doch nur so: Code:
[DeclareEventHandler("Eplan.EplApi.OnPostOpenProject")] public void MyEventHandlerFunction(IEventParameter iEventParameter) { try { EventParameterString oEventParameterString = new EventParameterString(iEventParameter); new Decider().Decide(EnumDecisionType.eOkDecision, "Projekt [" + oEventParameterString.String + "] wurde geöffnet!", "OnPostOpenProject", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK, string.Empty, false, EnumDecisionIcon.eINFORMATION); } catch (System.InvalidCastException exc) { new Decider().Decide(EnumDecisionType.eOkDecision, exc.Message, "OnPostOpenProject, Fehler", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK, string.Empty, false, EnumDecisionIcon.eFATALERROR); } }
------------------ grüße FrankS [Diese Nachricht wurde von F.S. am 20. Mrz. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ASSE Mitglied

 Beiträge: 98 Registriert: 12.01.2005 EPLAN Electric P8 2023 Update 4
|
erstellt am: 20. Mrz. 2019 10:23 <-- editieren / zitieren --> Unities abgeben:         
|