Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Skript: Name der Struktur im Seitennavigator auslesen?

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
  
Artikeldaten schneller im Zugriff, eine Pressemitteilung
Autor Thema:  Skript: Name der Struktur im Seitennavigator auslesen? (351 / mal gelesen)
Tobsi
Mitglied
Elektrokonstruktion

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

Beiträge: 6
Registriert: 30.08.2023

EPLAN Electric P8 - Professional 2.9+

erstellt am: 03. Jul. 2024 14:56    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 zusammen,

wieder mal raucht der Kopf und die Eplan API Help, bzw. Eplan Hilfe bringt mich nicht weiter 

Wir untergliedern in unseren Makroprojekten die einzelnen Makros, die über mehrere Einbauorte + und Anlagen = gehen können dadurch, dass wir die benutzerdefinierten Struktur # nutzen.

Bisher haben wir dann über den PDF Export Listen zur Vormontage erstellt. Hier konnte dann über "Unterverzeichisse erzeugen" eingestellt werden, dass nach "Benutzdefinierte Struktur (Hauptkennzeichen) P1600" getrennt wurde.
Somit hat Eplan dann für jede Struktur eine einzelne PDF erstellt, was dann wiederrum auch einfach in den Dateinamen mit aufgenommen werden konnte.

Nun ist PDF leider nicht das Lieblingsformat der IT um dieses weiterzuverarbeiten, weshalb wir nun gerne auf Excel-Format, also *.xls gehen würden.

Ich selektiere also im Seitennavigator eine Struktur # und somit wird nun durch Fertigungsdaten=> Export/Beschriftung meine *.xls erzeugt.
Damit die Kollegen nicht jedesmal den Dienst erst aufrufen müssen, Dateinamen eintragen, bzw. falsche Schemas benutzen, hab ich dafür eine Symbolleiste gebastelt, die dann ein Skript aufruft.

Leider kann ich aber immer nur einen Dateinamen abhängig vom Projekt hinterlegen, wodurch ich mir natürlich die Datei jedesmal überschreibe, wenn ich mehrere Strukturen innerhalb eines Projektes nacheinander anklicken und ausgeben möchte.

Gibt es eine Möglichkeit, innerhalb eines Skriptes die Struktur # des selektierten Teils auszulesen ?

Mit PathMap können ja zumindest Projekteigenschaften und Standardverzeichnisse ermittelt werden. Soweit ich das in der API Hilfe gesehen habe, scheint es aber keine Befehle zu geben, die "tiefer" gehen und sogar Struktur #, Einbauort + oder ähnliches ermitteln können.

Hat hier jemand schon Erfahrungen sammeln können, bzw. Ideen, wie ich das Problem umschiffen könnte ? Vielleicht gibt es ja irgendwo versteckt noch einen Standard "Export XML" Dienst 

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

F.S.
Moderator



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: 1896
Registriert: 23.04.2003

EPLAN Electric P8
2024 Prof.

erstellt am: 03. Jul. 2024 15:38    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 Tobsi 10 Unities + Antwort hilfreich

Hallo,

ich würde dafür mit der Action "selectionset" mir die markierten Seiten auslesen. Diesen String dann zerlegen, zuerst die erste Seite ausschneiden, in diesem String dann dein Strukturkennzeichen auslesen.

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

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

Tobsi
Mitglied
Elektrokonstruktion

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

Beiträge: 6
Registriert: 30.08.2023

EPLAN Electric P8 - Professional 2.9+

erstellt am: 03. Jul. 2024 15:44    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

Nachdem ich mal nicht mehr versteift nach Struktur und Skript gesucht hab, bin ich nun auf folgenden Thread gestoßen, der eigentlich nach der Lösung meines Problems klingt 

https://ww3.cad.de/foren/ubb/Forum467/HTML/013405.shtml

Aber irgendwas scheint an meiner Syntax doch noch nicht zu passen. Während des Skriptes bekomme ich immer die Meldung "Eigenschaft setzen. Die Eigenschaft "1600" kann nicht gesetzt werden." Die Excel wird aber trotzdem erstellt, nur fehlt die Struktur im Namen.

Dabei nutze ich doch GET und nicht SET 

Hier mal ein Auszug aus dem Skript:

Code:

            // Struktur auslesen
            CommandLineInterpreter oCLI = new CommandLineInterpreter();
            ActionCallingContext oACC = new ActionCallingContext();
            string sPropertyValue = string.Empty;

            oACC.AddParameter("PropertyId", "1600");
            oACC.AddParameter("PropertyIndex", "0");
            oCLI.Execute("XEsGetPagePropertyAction", oACC);
            oACC.GetParameter("PropertyValue", ref sPropertyValue);
                       
            // Parameter für die Action
            ActionCallingContext labellingContext = new ActionCallingContext();
            labellingContext.AddParameter("CONFIGSCHEME", "Kundendokument");
            labellingContext.AddParameter("DESTINATIONFILE", @"$(DOC)\$(PROJECTNAME)_$(sPropertyValue).xls ");
            labellingContext.AddParameter("FILTERSCHEME", "");
            labellingContext.AddParameter("LANGUAGE", "de_DE");
            labellingContext.AddParameter("LogMsgActionDone", "true");
            labellingContext.AddParameter("SHOWOUTPUT", "0");
            labellingContext.AddParameter("PROJECTNAME", ProjectFullName);
            labellingContext.AddParameter("RECREPEAT", "1");
            labellingContext.AddParameter("SORTSCHEME", "");
            labellingContext.AddParameter("TASKREPEAT", "1");
            labellingContext.AddParameter("USESELECTION", "1");

            // Ausführen der Beschriftungsaction mit Parametern
            new CommandLineInterpreter().Execute("label", labellingContext);


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

F.S.
Moderator



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: 1896
Registriert: 23.04.2003

EPLAN Electric P8
2024 Prof.

erstellt am: 03. Jul. 2024 16: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 Tobsi 10 Unities + Antwort hilfreich

Deine Syntax ist richtig, die Eigenschaft 1600 lässt sich per Skript nicht auslesen.
Daher mein Vorschlag über selectionset zu gehen.

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

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

Tobsi
Mitglied
Elektrokonstruktion

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

Beiträge: 6
Registriert: 30.08.2023

EPLAN Electric P8 - Professional 2.9+

erstellt am: 03. Jul. 2024 16:46    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

Danke dir für den Hinweis. Hatte vorhin meine Antwort schon parallel getippt, als deine kam.

Hab mir das nun mal eine Stunde angeschaut, aber verstehe schon nicht, wie ich nachdem ich die "selectionset" Action gemacht habe das wieder aus dem Kontext bekommen soll. Da gibt die Eplan Hilfe leider keine Auskunft zur Syntax.

Und wenn ich den string dann noch zerlegen soll, dann klingt das für mich eher danach, als müssten die Kollegen weiter händisch tippen 

Oder hättest du mal ein ähnliches Beispiel ? Im Transfer bin ich normal relativ gut, nur hatte ich leider nie eine Skript Schulung bei Eplan, sondern ziehe mein Wissen nur aus den Hilfen/Foren und den vielen Skripten, die bei uns schon da sind.

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

F.S.
Moderator



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: 1896
Registriert: 23.04.2003

EPLAN Electric P8
2024 Prof.

erstellt am: 04. Jul. 2024 07:14    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 Tobsi 10 Unities + Antwort hilfreich


GetSelectedPagename.cs.txt

 
Hier ist ein Beispiel was alles enthält was du brauchst.

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

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

Tobsi
Mitglied
Elektrokonstruktion

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

Beiträge: 6
Registriert: 30.08.2023

EPLAN Electric P8 - Professional 2.9+

erstellt am: 04. Jul. 2024 11:12    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

Vielem Dank FrankS für die umfangreiche Betreuung 

Hab das Skript noch um die Struktur und Dokumentenart erweitert, dass ich direkt ein universelles habe.

Danach nochmal kurz mit der Pfad Ausgabe gekämpft, da ich keine funktionierende Syntax hinbekommen habe um meinen String der Strukturkennung "sPropertyValue" bei der Aktion label richtig zu verknüpfen.

Code:

labellingContext.AddParameter("DESTINATIONFILE", @"$(DOC)\$(PROJECTNAME)_$(sPropertyValue).xls ");

Konnte mir dann aber nach kurzer Suche hier im Forum und einem anderen Post von dir den Pfad über Path.combine bilden und dann eben komplett übergeben, anstatt es im Parameter des Label Aufrufs zu verknüpfen.

Nun läuft das komplette Skript endlich 

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