| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: Offenes Projekt per API selektieren/aktivieren (VB.NET) (1416 / mal gelesen)
|
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 11. Aug. 2016 11:39 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, folgendes Szenario: Ich habe mindestens ein Projekt in EPLAN offen. Nun erstelle ich per API ein neues Projekt. So:
Code:
Dim oProj As Project oProj = oProjectManager.CreateProject(projectFileName, sTemplateFile)
Das Problem ist nur, dass das neu erstellte Projekt nicht aktiv ist, d.h. es ist noch das vorherige aktive Projekt geöffnet. Wenn man ein neues Projekt ohne API neu erstellt verhält sich das genau so ("altes" Projekt bleibt aktiv). Meine Frage ist nun, wie ich ein Projekt -per API- aktivieren kann. Hoffe jemand kann helfen. Danke. Grüße! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 11. Aug. 2016 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
|
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 11. Aug. 2016 12:25 <-- editieren / zitieren --> Unities abgeben:
Ja, ich habe auch gedacht, dass das mit Open geht. Bzw. so:
Code:
oProjectManager.OpenProject(projectFileName & ".elk")
Bekomme hier aber einen Fehler zurück: ex.Message = "Das Projekt kann nicht geöffnet werden." Ich mach das open direkt nach dem create. Das Projekt ist definitiv da, trotzdem Fehler... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 11. Aug. 2016 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
|
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 11. Aug. 2016 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
Hallo, was willst Du denn genau machen? Wenn Du das Projekt mit oProj = oProjectManager.CreateProject(projectFileName, sTemplateFile) erzeugt hast, hast Du doch das Project oProj Objekt mit dem Du einfach weiter machen kannst, da brauchst Du keinen OpenProject mehr! Vielleicht mal prüfen dass Dein Objekt Handle nicht null ist. Falls Du das Projekt im Seitennavi aktiv selektieren willst kannst Du das glaube ich so machen Edit oedit = new Edit(); oedit.SelectProjectInPagesNavigator(oProj); ( Das geht aber glaube ich erst ab Version 2.4 und höher! ) Gruß ------------------ Um zu sehen, musst Du die Augen offen halten. Um zu erkennen, musst Du sie schliessen und denken. [Diese Nachricht wurde von FML am 11. Aug. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 11. Aug. 2016 12:47 <-- editieren / zitieren --> Unities abgeben:
Ich will ein Projekt per API erstellen und es dem Anwender aktiv schalten. In Eplan würde man folgendes tun: 1. Im Menü auf Projekt 2. Neu 3. Projektnamen eingeben, Template wählen, usw. 4. OK um Projekt zu erstellen Was passiert nun? -> Das Projekt ist erstellt aber nicht "AKTIV", wenn vorher schon ein Projekt geöffnet wurde. Es ist erstellt worden aber der Anwender kann nicht direkt damit arbeiten. Man müsste das neu erstellte Projekt nun links im Baum doppelklicken. Und genau das möchte ich per API erreichen. Ich möchte das Projekt "aktiv" setzen, bzw. öffnen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 11. Aug. 2016 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
|
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 11. Aug. 2016 13:21 <-- editieren / zitieren --> Unities abgeben:
Sehr guter Hinweis. Danke dafür! An sich funktioniert das auch, aber leider nicht DIREKT nach dem Create. Es sieht so aus, als wäre Eplan noch nicht ganz fertig damit das Projekt zu erstellen, da wird schon versucht das neue Projekt aktiv zu schalten. Hmmm. Ideen?
Code:
Try Dim oMyProject As Project = Nothing Dim proMan As New ProjectManager() oMyProject = proMan.CreateProject("c:\temp\temp_pro.elk", "C:\templates\IEC_tpl001.ept") 'hier müsste man warten bis eplan das Projekt sauber erstellt hat... ?! 'dann weiter machen und das Ding selektieren... Dim oedit As New Edit oedit.SelectProjectInPagesNavigator(oMyProject) Catch ex As Exception MsgBox(ex.Message.ToString) End Try
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 11. Aug. 2016 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
Hi, normalerweise sollte das eigentlich gehen. Du kannst ja prüfen ob das Projekt offen ist: oMyProject.IsOpen ------------------ Um zu sehen, musst Du die Augen offen halten. Um zu erkennen, musst Du sie schliessen und denken. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 11. Aug. 2016 16:08 <-- editieren / zitieren --> Unities abgeben:
|
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 11. Aug. 2016 16:36 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
Hast Du mal geschaut ob in EPLAN Systemmeldungen vorliegen? Was sagt denn der Debugger im VS am Projekt Handle nach der Anlage?
------------------ Um zu sehen, musst Du die Augen offen halten. Um zu erkennen, musst Du sie schliessen und denken. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 12. Aug. 2016 09:14 <-- editieren / zitieren --> Unities abgeben:
|
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 15. Aug. 2016 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
|
auerpa Mitglied Anwendungsentwickler
Beiträge: 15 Registriert: 27.10.2014
|
erstellt am: 15. Aug. 2016 08:31 <-- editieren / zitieren --> Unities abgeben:
|
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 15. Aug. 2016 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für auerpa
Kommt denn irgendeine Meldung bei der Ausführung Deines Programmes? Du kannst mal direkt nach dem Create noch folgendes einbauen und versuchen. GC.Collect(); GC.WaitForPendingFinalizers(); Vielleicht hilft das.
------------------ Um zu sehen, musst Du die Augen offen halten. Um zu erkennen, musst Du sie schliessen und denken. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |