| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
| |
 | Automotive Day, eine Veranstaltung am 13.05.2025
|
Autor
|
Thema: Neues Scripting-Verfahren seit EPLAN P8 Version 2.1 (5428 mal gelesen)
|
wicked1 Mitglied
 Beiträge: 3 Registriert: 16.10.2012
|
erstellt am: 06. Feb. 2013 09:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo, mal vorausgeschickt: ich bin kein ausgewiesener Programmierer. Beim Scripten habe ich jedoch bislang immer einen Weg gefunden, mein Ziel zu erreichen. So war es bislang auch beim Scripten in EPLAN. Die Nutzung der automatisch erstellten Scripten in EPLAN und Umfunktionierung zu eigenen Scripten klappte immer recht gut. Aus [Start] einfach [DeclareAction("ActionName")] machen, und die Zeile mit dem Projektnamen in den Parametern auskommentieren. Seit Version 2.1 sehen die automatisch erstellten Scripten etwas umfangreicher aus, und die beschriebene Methode will nicht mehr funktionieren. Ich habe schon recht rumexperimentiert, allerdings ohne Erfolg. Die Skripten lassen sich zwar ohne Probleme in EPLAN laden, das Ausführen der Action bleibt hingegen ergebnislos. Eine Supportanfrage bei EPLAN blieb bislang unbeantwortet. Hat jemand bereits Erfahrungen gemacht mit dem neuen Verfahren und kann mir ggf. erklären, wie ich auf einfachem Wege aus dem automatisch erstellten Script eine eigene Action baue? Viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgischel Moderator ...und Dippel-Ing ET...
       

 Beiträge: 15740 Registriert: 09.03.2001 EPLAN Electric P8 Professional 2.7.x Expertenmenü :) ---
|
erstellt am: 06. Feb. 2013 19:22 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
wicked1 Mitglied
 Beiträge: 3 Registriert: 16.10.2012
|
erstellt am: 07. Feb. 2013 08:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ein Beispiel liefere ich natürlich gerne. Das Skript soll einen einfachen PDF-Export durchführen. Ein kleiner Test soeben ergab, dass das Skript über "Dienstprogramme -> Automatisiert bearbeiten -> Ausführen..." problemlos lauffähig ist. Über "Scripte -> Ausführen..." erhalte ich sofort eine Fehlermeldung ("Der erwartete Aufrufparameter strProjectName fehlt")! Gruß 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: 07. Feb. 2013 12:25 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
wicked1 Mitglied
 Beiträge: 3 Registriert: 16.10.2012
|
erstellt am: 07. Feb. 2013 15:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo Jonny, vielen Dank für die Hilfe. Ich befürchte nur, dass die Wirkung aufgrund meiner rudimentären Programmierkenntnisse bereits wieder verpufft ist... Ich habe die Zeilen mal eingefügt, bin mir aber natürlich mehr als unsicher, an welcher Stelle es sinnvoll ist. Trotzdem habe ich mir nochmal Gedanken gemacht: Beim Start des Abschnitts AutoTreat werden einige Variablen übergeben, unter anderem strProjectName, welche den Fehler verursacht. Soll ich diese rauslöschen? Ich kann mir aber nicht vorstellen, dass dies sinnvoll ist, da es ja unerheblich ist, ob die Variable genutzt wird oder nicht. Mir scheint eher das Problem zu sein, dass gar kein Wert übergeben wird... Vielleicht ist es sinnvoll, wenn ich das Skript hier mal poste: Code: public class Script { [Start] public bool AutoTreat(String strProjectName, String strSettingsFolder, Int32 nImportSettings, Int32 nCompleteProject, String strSelectionFilter) { Progress progress = new Progress("SimpleProgress"); progress.SetAllowCancel(true); bool bResult = true; int nActionsPercent = 100; if (nCompleteProject == 0 && nImportSettings == 1) { progress.BeginPart(10, "ReadSelectionSettings"); nActionsPercent -= 10; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Selection.xml"); progress.EndPart(); } progress.BeginPart(nActionsPercent,""); nActionsPercent = 100; if(!progress.Canceled()) { if (nImportSettings == 1) { progress.BeginPart(25, "ReadSettings"); nActionsPercent -= 25; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Settings1.xml"); progress.EndPart(); } } if(!progress.Canceled()) { progress.BeginPart(nActionsPercent, "export"); ActionCallingContext context1 = new ActionCallingContext (); context1.AddParameter("exportfile",@"$(PROJECTPATH)\PDF-Export.pdf"); context1.AddParameter("blackwhite","0"); context1.AddParameter("useprintmargins","0"); context1.AddParameter("usezoom","1"); context1.AddParameter("zoomlevel","50"); context1.AddParameter("usesimplelink","0"); context1.AddParameter("readonlyexport","1"); context1.AddParameter("exportscheme","EPLAN_default_value"); context1.AddParameter("fastwebview","1"); context1.AddParameter("exportmodel","0"); //context1.AddParameter("ProjectName",strProjectName); if (nCompleteProject == 1) { context1.AddParameter("type","PDFPROJECTSCHEME"); } else { context1.AddParameter("type","PDFPAGESSCHEME"); context1.AddParameter("PAGEFILTERNAME", strSelectionFilter); } bResult &= new CommandLineInterpreter().Execute("export",context1); progress.EndPart(); } progress.EndPart(true); return bResult; } }
Vielen Dank nochmal für jede Hilfe. Grüße wicked Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 02. Nov. 2015 09:55 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Hallo Jonny Wire, ich bin mit deinem Tutorial auf SUPLANUS durch. Jetzt habe ich auf V2.3 den PDF Export generiert. ProjectName und SettingsFolder habe ich erledigt Weißt du was ich mit den anderen machen soll, damit der Export funktioniert? Code: public class PDF_Export { [DeclareAction("PDF_Export")] public bool AutoTreat(/*String strProjectName, String strSettingsFolder,*/ Int32 nImportSettings, Int32 nCompleteProject, String strSelectionFilter) { String strFullProjectName = PathMap.SubstitutePath("$(PROJECTPATH)"); String strSettingsFolder = PathMap.SubstitutePath("$(MD_SCRIPTS)"); Progress progress = new Progress("SimpleProgress"); progress.SetAllowCancel(true); bool bResult = true; int nActionsPercent = 100; if (nCompleteProject == 0 && nImportSettings == 1) { progress.BeginPart(10, "ReadSelectionSettings"); nActionsPercent -= 10; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Selection.xml"); progress.EndPart(); } progress.BeginPart(nActionsPercent,""); nActionsPercent = 100; if(!progress.Canceled()) { if (nImportSettings == 1) { progress.BeginPart(25, "ReadSettings"); nActionsPercent -= 25; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Settings1.xml"); progress.EndPart(); } } if(!progress.Canceled()) { progress.BeginPart(nActionsPercent, "export"); ActionCallingContext context1 = new ActionCallingContext (); context1.AddParameter("exportfile",@"$(DOC)\Test_V2.3.pdf"); context1.AddParameter("blackwhite","1"); context1.AddParameter("useprintmargins","1"); context1.AddParameter("usezoom","0"); context1.AddParameter("zoomlevel","50"); context1.AddParameter("usesimplelink","0"); context1.AddParameter("readonlyexport","1"); context1.AddParameter("exportscheme","KS"); context1.AddParameter("fastwebview","0"); context1.AddParameter("exportmodel","0"); context1.AddParameter("ProjectName",strFullProjectName); if (nCompleteProject == 1) { context1.AddParameter("type","PDFPROJECTSCHEME"); } else { context1.AddParameter("type","PDFPAGESSCHEME"); context1.AddParameter("PAGEFILTERNAME", strSelectionFilter); } bResult &= new CommandLineInterpreter().Execute("export",context1); progress.EndPart(); } progress.EndPart(true); return bResult; } }
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: 02. Nov. 2015 10:16 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 02. Nov. 2015 10:31 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Derzeit habe ich noch ein paar Änderungen vorgenommen. Beim Ausführen meldet EPLAN ein Problem mit nImportSettings usw.. Die was in den AutoTreat drinnen stehen. Code: public class PDF_Export { [DeclareAction("PDF_Export")] public bool AutoTreat(/*String strProjectName, String strSettingsFolder,*/ Int32 nImportSettings, Int32 nCompleteProject, String strSelectionFilter) { String strFullProjectName = PathMap.SubstitutePath("$(PROJECTPATH)"); String strSettingsFolder = PathMap.SubstitutePath("$(MD_SCRIPTS)"); String sProjectName = PathMap.SubstitutePath("$(PROJECTNAME)"); DateTime Heute = DateTime.Now; Console.WriteLine(Heute.ToString("yyyyMMdd")); Progress progress = new Progress("SimpleProgress"); progress.SetAllowCancel(true); bool bResult = true; int nActionsPercent = 100; if (nCompleteProject == 0 && nImportSettings == 1) { progress.BeginPart(10, "ReadSelectionSettings"); nActionsPercent -= 10; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Selection.xml"); progress.EndPart(); } progress.BeginPart(nActionsPercent,""); nActionsPercent = 100; if(!progress.Canceled()) { if (nImportSettings == 1) { progress.BeginPart(25, "ReadSettings"); nActionsPercent -= 25; Eplan.EplApi.Base.Settings xmlSettings = new Eplan.EplApi.Base.Settings(); xmlSettings.ReadSettings(strSettingsFolder + @"\Settings1.xml"); progress.EndPart(); } } if(!progress.Canceled()) { progress.BeginPart(nActionsPercent, "export"); ActionCallingContext context1 = new ActionCallingContext (); context1.AddParameter("exportfile",strFullProjectName + @"$(DOC)\" + sProjectName + "_" + Heute + ".pdf"); context1.AddParameter("blackwhite","1"); context1.AddParameter("useprintmargins","1"); context1.AddParameter("usezoom","0"); context1.AddParameter("zoomlevel","50"); context1.AddParameter("usesimplelink","0"); context1.AddParameter("readonlyexport","1"); context1.AddParameter("exportscheme","KS"); context1.AddParameter("fastwebview","0"); context1.AddParameter("exportmodel","0"); context1.AddParameter("ProjectName",strFullProjectName); if (nCompleteProject == 1) { context1.AddParameter("type","PDFPROJECTSCHEME"); } else { context1.AddParameter("type","PDFPAGESSCHEME"); context1.AddParameter("PAGEFILTERNAME", strSelectionFilter); } bResult &= new CommandLineInterpreter().Execute("export",context1); progress.EndPart(); } progress.EndPart(true); return bResult; } }
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: 02. Nov. 2015 12:58 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 02. Nov. 2015 13:05 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Jonny Wire Mitglied Script-Troll
  
 Beiträge: 804 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 02. Nov. 2015 14:03 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 02. Nov. 2015 14:31 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 03. Nov. 2015 14:00 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Kann mir jemand bei dieser Befehlszeile helfen. EPLAN will hier wissen, welche Seiten für den PDF-Export im Seitennavigator markiert sind. Nur wie heißt er, hab schon das Internet durchforstet. Ich find ihn nicht. Code: else { context1.AddParameter("type","PDFPAGESSCHEME"); context1.AddParameter("PAGEFILTERNAME", strSelectionFilter); }
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: 06. Nov. 2015 09:44 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 07:11 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Guten Morgen Jonny, das Beispiel habe ich mir angeschaut und in mein Script integriert. Funktionieren tut es auch aber er will mir von jeder gewählten Seite ein eigenes PDF machen. Muss ich statt der Split-Methode was anderes eintragen oder ist der Parameter PAGENAME falsch dafür? Code: pdfContext.AddParameter("TYPE", "PAGES"); oCLI.Execute("selectionset", pdfContext); pdfContext.GetParameter("PAGES", ref strPages); foreach (string strAllPages in strPages.Split(';')) { if (!oProgress.Canceled()) { //pdfContext.AddParameter("TYPE", "PDFPROJECTSCHEME"); pdfContext.AddParameter("TYPE", "PDFPAGESSCHEME"); pdfContext.AddParameter("PAGENAME", strAllPages); //pdfContext.AddParameter("PAGEFILTERNAME", strPages); //pdfContext.AddParameter("USEPAGEFILTER", strAllPages); pdfContext.AddParameter("EXPORTFILE", strDOC + sProjectName + "_" + strDate + ".pdf"); pdfContext.AddParameter("EXPORTSCHEME", "KS"); pdfContext.AddParameter("EXPORTMODEL", "0"); //pdfContext.AddParameter("PROJECTNAME", sFullProjectName); oCLI.Execute("export", pdfContext);
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: 19. Nov. 2015 07:34 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 08:05 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Ich sehe schon, ich muss sowas aufgeben. Hatte in der Schule zwar Grundlagen und verstehe was du meinst aber mit dem umsetzen tue ich mir sehr schwer. Ich dachte, dass ich es schaffe. EPLAN meldet: Der Name 'index' ist im aktuellen Kontext nicht vorhanden. Danke für deine Hilfe.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 08:12 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
So... ...jetzt habe ich noch oben eingetragen Code: int index = 1;
und index++ habe ich unter den string verschoben Code: string pagenameParameter = "PAGENAME" + index index++;
keine Ahnung ob dies eine Auswirkung hat aber es funktioniert. Vielen Dank Jonny 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: 19. Nov. 2015 09:24 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Gibt es hier für eine Liste an Aktionen? Ich möchte etwas ausführen nachdem EPLAN gestartet ist. Code: DeclareEventHandler("onActionStart.String.PrnPrintDialogShow
Fündig geworden! Jetzt muss ich nur noch nen Timer platzieren 
[Diese Nachricht wurde von Braini87 am 19. Nov. 2015 editiert.] 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: 19. Nov. 2015 13:44 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 15:32 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 19. Nov. 2015 15:36 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
Jetzt muss ich nur noch die Skripte auf den anderen Rechner automatisch laden lassen. Am besten über die install.xml da hab ich schon einen Beitrag gefunden. Hab das ausprobiert und es funktioniert nicht ganz. Verwendest du das vielleicht auch? Kannst du mir da eventuell deine XML für einen Vergleich zeigen? So...fertig. [Diese Nachricht wurde von Braini87 am 19. Nov. 2015 editiert.] 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: 20. Nov. 2015 08:02 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|
Braini87 Mitglied Technischer Redakteur
 
 Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 20. Nov. 2015 09:24 <-- editieren / zitieren --> Unities abgeben:          Nur für wicked1
|