Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Skript - PDF erstellen beim schließen von EPLAN

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
Autor Thema:   Skript - PDF erstellen beim schließen von EPLAN (568 mal gelesen)
MarkusALand
Mitglied


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

Beiträge: 2
Registriert: 19.10.2020

erstellt am: 19. Okt. 2020 13:47    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 liebe Leute!

Ich würde gerne beim schließen von EPLAN sämtliche offenen Projekte als PDF exportieren.
Derzeit schaffe ich es nur das aktuelle Projekt zu eportieren wenn ich das Programm beende. Ich benötige die Liste sämtlicher offenen Projekte, oder eine Funktion die mir nach einander die Projekte schließt.
Ich hab das "OpenProjects Property" gefunden und weiß aber nicht wie ich das verwenden kann. LINK

Vielen Dank & schönen Tag,
Markus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Ehrenmitglied



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

Beiträge: 1560
Registriert: 23.04.2003

Eplan Electric P8
2.9 SP1 Prof.

erstellt am: 20. Okt. 2020 07:37    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 MarkusALand 10 Unities + Antwort hilfreich

Hallo,

diese Aufgabenstellung gab es schon mal (2009!  wie die Zeit vergeht  ), im folgenden Code solltest du alles finden.
Einziger Nachteil ist das in Eplan nicht die zu letzt geöffneten Projekte nach einem Neustart wieder geöffnet werden.


Code:

// PDFbyEplanEnd, Version 1.0.0, vom 14.04.2009
//
// Beim schließen von Eplan wird automatisch für
// jedes geöffnete Projekt eine PDF-Datei mit dem
// Projektnamen angelegt.
//
// Copyright by Frank Schöneck, 2009
// letzte Änderung: Frank Schöneck, 21.01.2009 V1.0.0, Projektbeginn
//
// für Eplan Electric P8, ab V1.9.5
//
//

using System.IO;

public class PDFbyEplanEnd
{
    [DeclareEventHandler("Eplan.EplApi.OnMainEnd")]
    public void MyEventHandlerFunction()
    {
        string strPDFDatei = string.Empty;
        string strProjektOrdner = string.Empty;
        string strAusgabeOrdner = string.Empty;
        int AusgabeNach;

        //Hier einstellen wohin die PDF-Datei gespeichert werden soll!
        //1 = in den Projekt-Ordner
        //2 = in den Ordner eine Ebene über dem Projekt-Ordner
        //3 = in Ordner "Eigene Dateien"
        //4 = auf den Desktop
        AusgabeNach = 4;    //<-- hier einstellen

        strProjektOrdner = PathMap.SubstitutePath("$(PROJECTPATH)");

        switch (AusgabeNach)
        {
            case 1:
                //in den Projekt-Ordner
                strAusgabeOrdner = strProjektOrdner;
                break;
            case 2:
                //in den Ordner eine Ebene über dem Projekt-Ordner
                strAusgabeOrdner = strProjektOrdner.Substring(0, strProjektOrdner.LastIndexOf(@"\"));
                break;
            case 3:
                //in Ordner "Eigene Dateien"
                strAusgabeOrdner = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                break;
            case 4:
                //in Ordner "Desktop"
                strAusgabeOrdner = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
                break;
            default:
                MessageBox.Show("Variable 'AusgabeNach' wurde nicht korrekt eingestellt.", "PDFbyProjectClose", MessageBoxButtons.OK, MessageBoxIcon.Error);
                break;
        }


        //alle geöffneten Projekte durchgehen
        do
        {
            strPDFDatei = strAusgabeOrdner + @"\" + PathMap.SubstitutePath("$(PROJECTNAME)") + ".pdf";

            //MessageBox.Show(strPDFDatei);
            PDFexport(strPDFDatei);
            Project_Close();
        }
        while (PathMap.SubstitutePath("$(PROJECTNAME)") != string.Empty);

        return;
    }

    public void Project_Close()
    {
        //Aktuelles Projekt schließen
        ActionCallingContext ProjektContext = new ActionCallingContext();
        ProjektContext.AddParameter("NOCLOSE", "0");
        new CommandLineInterpreter().Execute("XPrjActionProjectClose", ProjektContext);
    }

    public void PDFexport(string strZielDatei)
    {
        //Gesamtes Projekt als PDF ausgeben
        //Progressbar ein
        Eplan.EplApi.Base.Progress oProgress = new Eplan.EplApi.Base.Progress("SimpleProgress");
        oProgress.ShowImmediately();

        ActionCallingContext pdfContext = new ActionCallingContext();
        pdfContext.AddParameter("type", "PDFPROJECTSCHEME"); //PDFPROJECTSCHEME = Projekt im PDF-Format exportieren
        //pdfContext.AddParameter("exportscheme", "NAME_SCHEMA"); //verwendetes Schema
        pdfContext.AddParameter("exportfile", strZielDatei); //Name export.Projekt, Vorgabewert: Projektname
        pdfContext.AddParameter("exportmodel", "0"); //0 = keine Modelle ausgeben
        pdfContext.AddParameter("blackwhite", "1"); //1 = PDF wird schwarz-weiss
        pdfContext.AddParameter("useprintmargins", "1"); //1 = Druckränder verwenden
        pdfContext.AddParameter("readonlyexport", "2"); //1 = PDF wird schreibgeschützt
        pdfContext.AddParameter("usesimplelink", "1"); //1 = einfache Sprungfunktion
        pdfContext.AddParameter("usezoomlevel", "1"); //Springen in Navigationsseiten
        pdfContext.AddParameter("fastwebview", "1"); //1 = schnelle Web-Anzeige
        pdfContext.AddParameter("zoomlevel", "1"); //wenn USEZOOMLEVEL auf 1 dann hier Zoomstufe in mm

        new CommandLineInterpreter().Execute("export", pdfContext);

        //'Progressbar aus
        oProgress.EndPart(true);

        return;
    }

}


------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Funktionselektriker (m/w/d)

SMS group GmbH

SMS group GmbH ist ein international tätiges Unternehmen des Anlagen- und Maschinenbaus für die Verarbeitung von Stahl und NE-Metallen. Wir gehören zur SMS group, die mit rund 14.000 Mitarbeiterinnen und Mitarbeitern weltweit einen Umsatz von über 2,9 Mrd. EUR erwirtschaftet. Alleineigentümer der Holding SMS GmbH ist die Familie Weiss Stiftung. Die leistungsorientierte Unternehmenskultur ...

Anzeige ansehenLeitung, Teamleitung
MarkusALand
Mitglied


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

Beiträge: 2
Registriert: 19.10.2020

erstellt am: 20. Okt. 2020 16: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

Vielen Dank F.S.

Der Befehl hat mir geholfen

Code:
while (PathMap.SubstitutePath("$(PROJECTNAME)") != string.Empty);

Ich hatte dann nur mehr eine Kopfnuss zu knacken. Ich hab in dem Skript nämlich zwei Eventhanlder gehabt. Einmal beim schließen vom Projekt und einmal beim schließen vom Programm.
Jedes Mal wenn ich das Programm jetzt geschlossen habe, hat er mir zweimal ein PDF erstellt. Bis ich drauf gekommen bin, dass er duch das Projekt_Close mir ja den Eventhandler vom Projekt-Schließen auslöst.   

Vielen Dank F.S.

Wünsche einen schönen Tag,
Markus

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)2020 CAD.de | Impressum | Datenschutz