| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN | | | | Eplan Network 2024 Ganz in Ihrer Nähe: Mattighofen - AT, Veranstaltung am 15.09.2024 |
Autor
|
Thema: Skript: Name der Struktur im Seitennavigator auslesen? (177 / mal gelesen)
|
Tobsi Mitglied Elektrokonstruktion
Beiträge: 6 Registriert: 30.08.2023 EPLAN Electric P8 - Professional 2.9+
|
erstellt am: 03. Jul. 2024 14:56 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 1861 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 03. Jul. 2024 15:38 <-- editieren / zitieren --> Unities abgeben: Nur für Tobsi
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
Beiträge: 6 Registriert: 30.08.2023 EPLAN Electric P8 - Professional 2.9+
|
erstellt am: 03. Jul. 2024 15:44 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 1861 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 03. Jul. 2024 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für Tobsi
|
Tobsi Mitglied Elektrokonstruktion
Beiträge: 6 Registriert: 30.08.2023 EPLAN Electric P8 - Professional 2.9+
|
erstellt am: 03. Jul. 2024 16:46 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 1861 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 04. Jul. 2024 07:14 <-- editieren / zitieren --> Unities abgeben: Nur für Tobsi
|
| Controls Electrical Engineer (m/f/d) | Where do people love what they do, and being great at what they do At Swisslog, that's where! Our teams are the heart of a world-leading Robotics company that's harnessing the power of technology to shape the future of intralogistics. The result? We're transforming performance and efficiency for customers across the globe, giving them the vital edge in their markets. Make an ... | Anzeige ansehen | Weitere: Einkauf, Materialwirtschaft und Logistik |
|
Tobsi Mitglied Elektrokonstruktion
Beiträge: 6 Registriert: 30.08.2023 EPLAN Electric P8 - Professional 2.9+
|
erstellt am: 04. Jul. 2024 11:12 <-- editieren / zitieren --> Unities abgeben:
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 >>)
|