Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  C# Programmierung Felder

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von ThMue an!   Senden Sie eine Private Message an ThMue  Schreiben Sie einen Gästebucheintrag für ThMue

Beiträge: 2385
Registriert: 22.10.2013

EPLAN Electric P8 - Professional 2.9/2022 + alle Addons

erstellt am: 12. Aug. 2014 13:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von ThMue an!   Senden Sie eine Private Message an ThMue  Schreiben Sie einen Gästebucheintrag für ThMue

Beiträge: 2385
Registriert: 22.10.2013

EPLAN Electric P8 - Professional 2.9/2022 + alle Addons

erstellt am: 18. Aug. 2014 06:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von cad_hans an!   Senden Sie eine Private Message an cad_hans  Schreiben Sie einen Gästebucheintrag für cad_hans

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ThMue 10 Unities + Antwort hilfreich

hallo,

bitte such im Forum.
wurde bereits öfters diskutiert.

------------------
ruplan4.61
ruplan4.70
eplan5.x
P8 V1.9 HF1 Build 3297

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


Sehen Sie sich das Profil von ThMue an!   Senden Sie eine Private Message an ThMue  Schreiben Sie einen Gästebucheintrag für ThMue

Beiträge: 2385
Registriert: 22.10.2013

EPLAN Electric P8 - Professional 2.9/2022 + alle Addons

erstellt am: 30. Sep. 2014 10:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von ThMue an!   Senden Sie eine Private Message an ThMue  Schreiben Sie einen Gästebucheintrag für ThMue

Beiträge: 2385
Registriert: 22.10.2013

EPLAN Electric P8 - Professional 2.9/2022 + alle Addons

erstellt am: 26. Nov. 2014 11:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von DanielPa an!   Senden Sie eine Private Message an DanielPa  Schreiben Sie einen Gästebucheintrag für DanielPa

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ThMue 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz