| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: C# Programmierung Felder (3859 mal gelesen)
|
ThMue Ehrenmitglied V.I.P. h.c. M.Sc. Wirtschaftsingeneurswesen, B.Eng. Elektro- und Automatisierungstechnik
Beiträge: 2385 Registriert: 22.10.2013 EPLAN Electric P8 - Professional 2.9/2022 + alle Addons
|
erstellt am: 12. Aug. 2014 13:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, woher bekomm ich den ein paar Befehle für die c# Programmierung? Eplan Spezifisch die Felder, da müsste es ja was geben? Wenn ich z.b. das Feld XPageAddOnFieldNumberingDialog aufrufe (Zusatzfelder nummererieren) würde ich gerne wissen wie die drei Felder heißen "Feldauswahl" "Startwert" "Anzahl der Stellen" und wie das mit OK zu bestätigen wäre? Würd gern Feldauswahl: Zusatzfeld Seite, Startwert 1 und Stellenanzahl 1 haben wollen. Außerdem würd ich gerne XPageNumberingDialog ebenfalls genau einstellen. Das funktioniert ja über die Einstellungen per ActionCallingContext und dem anschließenden Aufruf eines Prozesses (Progress)? Programmieren kann soweit ganz ordentlich ich allerdings fehlen mir einfach die internen Befehle von EPLAN Seite :-( Liebe Grüße Thorsten
------------------ Vorlesungen machen den Verstand träge. Sie zerstören das Potenzial für authentische Kreativität. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThMue Ehrenmitglied V.I.P. h.c. M.Sc. Wirtschaftsingeneurswesen, B.Eng. Elektro- und Automatisierungstechnik
Beiträge: 2385 Registriert: 22.10.2013 EPLAN Electric P8 - Professional 2.9/2022 + alle Addons
|
erstellt am: 18. Aug. 2014 06:51 <-- editieren / zitieren --> Unities abgeben:
kennt sich den keiner damit genauer aus, wie die genauen Felder heißen oder wie ich das rausfinden kann? Liebe Grüße ------------------ Vorlesungen machen den Verstand träge. Sie zerstören das Potenzial für authentische Kreativität. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad_hans Ehrenmitglied V.I.P. h.c. Techn. Angestellter
Beiträge: 2052 Registriert: 25.08.2003 ruplan4.70 eplan5.x P8 V1.9 bis V2.7
|
erstellt am: 18. Aug. 2014 07:28 <-- editieren / zitieren --> Unities abgeben: Nur für ThMue
|
ThMue Ehrenmitglied V.I.P. h.c. M.Sc. Wirtschaftsingeneurswesen, B.Eng. Elektro- und Automatisierungstechnik
Beiträge: 2385 Registriert: 22.10.2013 EPLAN Electric P8 - Professional 2.9/2022 + alle Addons
|
erstellt am: 30. Sep. 2014 10:23 <-- editieren / zitieren --> Unities abgeben:
Also es klappt nun alles außer das automatische "OK" und "JA" drücken der Dialogfenster :-x auch wenn es schon öfter diskutiert wurde bringt mir das durchlesen keine weiteren Informationen :-( evtl. gibt's ja doch noch einen anderen Thread? aktuell "Auswertung aktualisieren" sagt er dass sie aktuell sind => müsste mit OK bestätigt werden "Zusatzfelder nummerieren" -> Feldauswahl Zusatzfeld Seite, Startwert -> 1 und Anzahl der Stellen -> 1 => müsste anschließend mit OK bestätigt werden "PDF exisiert bereits .... überschreiben?" => müsste mit JA bestätigt werden. Liebe Grüße ------------------ Vorlesungen machen den Verstand träge. Sie zerstören das Potenzial für authentische Kreativität. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThMue Ehrenmitglied V.I.P. h.c. M.Sc. Wirtschaftsingeneurswesen, B.Eng. Elektro- und Automatisierungstechnik
Beiträge: 2385 Registriert: 22.10.2013 EPLAN Electric P8 - Professional 2.9/2022 + alle Addons
|
erstellt am: 26. Nov. 2014 11:39 <-- editieren / zitieren --> Unities abgeben:
Also ich komm einfach nicht weiter :-( Es müsste eigentlich nur noch rein dass er automatisch "OK" und "JA" automatisch auswählt. Nur das Diaognalfenster mit dem überschreiben soll er nicht automatisch betätigen. Desweiteren ein Bug im Skript, welcher sich manchmal einschleicht. - Wenn Projekt ABC und XYZ offen sind schreibt er, obwohl XYZ gewählt ist den Dateinamen ABC :-x Beheben: Neustart von EPLAN
Code: //***************************************************************** //Projekt: ExportProjektAsPDF //Erstellt von: Eugen S. //Esretllt am: 19.03.2010 //Version: 1.0 //***************************************************************** //Basisprogramm: Funktion von EPLAN abgebildet "Seite > Exportieren > PDF..." //Geändert und Erweitert von: Thorsten M. //Geändert und Erweitert am: 12.08.2014 //Geändert und Erweitert: 1.1 //Änderungen: Ausgabepfad, diverse. Settings, Projekt auswerten, Auswertungen auswerten, Zusatzfeld Seite nummerieren, Verbindungen aktualisieren // // Verbindungen aktualisieren // Projekt auswerten // Auswertungen auswerten // Zusatzfeld Seite nummerieren // PDF in Test-Ordner erzeugen //***************************************************************** //Geändert und Erweitert von: Thorsten M. //Geändert und Erweitert am: 01.10.2014 //Geändert und Erweitert: 1.2 //Änderungen: // //*****************************************************************using System.Diagnostics; using System.IO; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Scripting; public class ExportProjectAsPDF { [DeclareAction("ExportProjectAsPDF")] public void ExportProjectAsPDFVoid() { ActionCallingContext acc = new ActionCallingContext(); CommandLineInterpreter oCLI = new CommandLineInterpreter(); // Verbindungen aktualisieren acc.AddParameter("TYPE", "CONNECTIONS"); oCLI.Execute("generate",acc); // Projekt auswerten oCLI.Execute("XFgEvaluateProjectAction"); // Auswertungen auswerten oCLI.Execute("XFgUpdateEvaluationAction"); //oCLI.Execute("XPageNumberingDialog"); // Seiten nummerieren // Zusatzfeld nummerieren oCLI.Execute("XPageAddOnFieldNumberingDialog"); //Projekt; Projektname ermitteln und Endung abschneiden. string sProjectName = PathMap.SubstitutePath("$(PROJECTNAME)"); string Projectpath = PathMap.SubstitutePath("$(PROJECTPATH)"); //Projectpath = Projectpath.Substring(0, Projectpath.LastIndexOf("\\")) + @"\"; Projectpath = @"W:\04_Produkte\05_Maschinen_Daten\01_Maschinenplaene\Test\"; ActionCallingContext exportContext = new ActionCallingContext(); exportContext.AddParameter("TYPE", "PDFPROJECT"); exportContext.AddParameter("EXPORTFILE", Projectpath + sProjectName); exportContext.AddParameter("USESIMPLELINK", "1"); //1 = einfache Sprungfunktion exportContext.AddParameter("FASTWEBVIEW", "1"); //1 = schnelle Web-Anzeige exportContext.AddParameter("READONLYEXPORT", "2"); //1 = PDF wird schreibgeschützt, exportContext.AddParameter("BLACKWHITE", "1"); //1 = PDF wird schwarz/weiß, 0 = PDF wird farbig exportContext.AddParameter("useprintmargins", "1"); //1 = Druckränder verwenden // PDF: Prüfung, ob die Datei schon vorhanden ist. if (File.Exists(Projectpath + sProjectName + ".pdf")) { DialogResult oDialogResult = MessageBox.Show("Die PDF-Datei existiert bereits. Soll diese Datei überschrieben werden?", "Gesamtes Projekt als PDF exportieren", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (oDialogResult == DialogResult.Yes) { // PDF: Action Progress ProgressPDF = new Progress("ProgressPDF"); ProgressPDF.BeginPart(100, ""); ProgressPDF.SetAllowCancel(true); new CommandLineInterpreter().Execute("export", exportContext); ProgressPDF.EndPart(true); // PDF: Öffnen Process pPDF = new Process(); System.Diagnostics.Process.Start(Projectpath + sProjectName + ".pdf"); } return; } else { // PDF: Action Progress ProgressPDF = new Progress("ProgressPDF"); ProgressPDF.BeginPart(100, ""); ProgressPDF.SetAllowCancel(true); new CommandLineInterpreter().Execute("export", exportContext); ProgressPDF.EndPart(true); // PDF: Öffnen Process pPDF = new Process(); System.Diagnostics.Process.Start(Projectpath + sProjectName + ".pdf"); } } }
------------------ Vorlesungen machen den Verstand träge. Sie zerstören das Potenzial für authentische Kreativität. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielPa Mitglied Consultant
Beiträge: 377 Registriert: 21.05.2009 WSCAD Suit Ultimate 2015 Eplan P8 2.2.5 und 2.4
|
erstellt am: 26. Nov. 2014 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für ThMue
Hi Thorsten, mit Scripting lässt sich viel lösen aber leider eben nicht alles. Um auf das volle Datenmodell von Eplan zuzugreifen (wie z.B. einem Office-VBA Makro) benötigst du eine Api-Lizenz. Aber selbst mit dieser kannst du keine Eplan-Dialoge beeinflussen. Zu deinem Script: Verbindungen aktualisieren >> sollte so funktionieren Projekt auswerten >> funktioniert vermutlich auch wobei Eplan hier die Action "reports" bereitstellt welche auch Parameter entgegennimmt (TYPE, PROJECTNAME, PAGENAME). Seiten nummerieren >> Meines Wissens nach kann man mit einfachen Scripting keine Eigenschaften bearbeiten die Identifizierend für das Objekt sind (z.B. Seitenname). Es gibt in einem Zusatzmodul "Scripting Extension" eine Action "renumber" mit der man diverse Sachen nummerieren kann. Ist aber eben €in Zu$atzmodul. Seiten-Zusatzfelder nummerieren >> Hier kannst du versuchen ob du mit der "XEsSetPagePropertyAction" weiter kommst. Für den Seitenaufruf die Action "edit" und zum ermitteln der Seitennamen selectionset. Die Zählung/Iteration musst du in deinem Script machen. Der Rest mit dem PDF-Geraffel sollte funzen. Wobei ich dich darauf hinweisen möchte, dass du nicht alles in eine einzige Methode klatschen musst. Den PDF Export könntest du leicht in eine separate Methode extrahieren und vielleicht auch noch einen SaveFileDialog mit einbauen. Code:
public void ExportProjectAsPDFVoid() { ... ... ... if (File.Exists(Projectpath + sProjectName + ".pdf")) { DialogResult oDialogResult = MessageBox.Show("Die PDF-Datei existiert bereits. Soll diese Datei überschrieben werden?", "Gesamtes Projekt als PDF exportieren", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); switch (oDialogResult) { case DialogResult.Yes: exportAndOpenPDF(ActionCallingContext exportContext, Projectpath + sProjectName + ".pdf") break; case DialogResult.No: exportAndOpenPDF(ActionCallingContext exportContext, savePDFDialog()) break; case DialogResult.Cancel: return; break; default: return; break; } } else { exportAndOpenPDF(ActionCallingContext exportContext, Projectpath + sProjectName + ".pdf") } } private void exportAndOpenPDF(ActionCallingContext acc, String pdfFullName) { // PDF: Action Progress ProgressPDF = new Progress("ProgressPDF"); ProgressPDF.BeginPart(100, ""); ProgressPDF.SetAllowCancel(true); new CommandLineInterpreter().Execute("export", acc); ProgressPDF.EndPart(true); // PDF: Öffnen Process pPDF = new Process(); System.Diagnostics.Process.Start(pdfFullName); } private string savePDFDialog() { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "PDF-Datei (*.pdf)|*.pdf|Alle Dateien (*.*)|*.*" ; //weitere Eigenschaften setzen if(saveFileDialog1.ShowDialog() == DialogResult.OK) { return saveFileDialog1.FileName; } return ""; }
Ungetestetes Beispiel!!! MfG Daniel ------------------ “Hacker (noun): An organism that converts caffeine or alcohol into code.” ~ Standard Definition Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|