| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: (Scripting) Dateiname von selektiertem Makrokasten (2111 mal gelesen)
|
DanielPa Mitglied Consultant
Beiträge: 377 Registriert: 21.05.2009 WSCAD Suit Ultimate 2015 Eplan P8 2.2.5 und 2.4
|
erstellt am: 29. Dez. 2014 12:45 <-- editieren / zitieren --> Unities abgeben:
Hi, hat jemand eine Idee wie ich über ein Script an den Dateinamen eines im GED markierten Makrokastens rankomme (Schaltplanprojekt)? Mein erster Gedanke war über eine Beschriftung die Eigenschaft "<20468> Makro" aus einem zugehörigen Objekt auszugeben. Jedoch finde ich keinen Auswertungstyp der diese Eigenschaft ausgeben kann. 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 |
DanielPa Mitglied Consultant
Beiträge: 377 Registriert: 21.05.2009 WSCAD Suit Ultimate 2015 Eplan P8 2.2.5 und 2.4
|
erstellt am: 29. Dez. 2014 19:14 <-- editieren / zitieren --> Unities abgeben:
Ok ich hab selbst einen Lösungsweg für mein direktes Problem gefunden welcher ungefähr so aussieht: Code: public string GetSelectedMacroBoxFileName() { string tempFilePath = PathMap.SubstitutePath("$(TMP)") + "\\macroname.edc"; string result = string.Empty; CommandLineInterpreter interpreter = new CommandLineInterpreter(); ActionCallingContext XMExportFunctionActionContext = new ActionCallingContext(); XMExportFunctionActionContext.AddParameter("ConfigScheme", "MacroName"); XMExportFunctionActionContext.AddParameter("CompleteProject", "0"); XMExportFunctionActionContext.AddParameter("Destination", tempFilePath); XMExportFunctionActionContext.AddParameter("ExecutionMode", "0"); interpreter.Execute("XMSelectObjectsInsideMacroBoxAction"); interpreter.Execute("XMExportFunctionAction", XMExportFunctionActionContext); XmlTextReader reader = new XmlTextReader(tempFilePath); while (reader.Read()) { if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { if (reader.Name == "P20468") { if (reader.Value != "") { result = PathMap.SubstitutePath("$(MD_MACROS)") + "\\" + reader.Value; } } } } } return result; }
Leider hilft mir das in meinem konkreten Fall auch nicht weiter weil ich noch eine weitere Action an dem Makrokasten ausführen will und der ja nach XMSelectObjectsInsideMacroBoxAction nicht mehr markiert ist Die andere Action benötigt die den String von GetSelectedMacroBoxFileName() und kann somit nicht vorher ausgeführt werden. Jemand ne Idee wie ich nen Makrokasten markiert bekommen? ------------------ “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 |
matthespro Mitglied Elektrotechnikermeister, Selbständig
Beiträge: 531 Registriert: 22.09.2006 Eplan 5.70.3 Prof. Int. Eplan 21 4.3 Prof. Int. mit GM Tool 3.214 Eplan P8 Prof. Int. 2.2 - Aktuell EPLAN P8 Fluid Addon 2.2 - Aktuell Eplan P8 Prof. Int. mit GM Tool Win 7 64 Bit MS Office 2010
|
erstellt am: 08. Jan. 2015 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für DanielPa
Moinsen........ hast du es mal mit XGedSelectSameObjectsAction versucht? Wenn du mit rechter Maustaste ein Bauteil markierst und dann im Kontextmenü "Objekte gleichen Typs markieren" auswählst, führst du diese Action aus...... Vielleicht lässt sich das ja in der Verbindung mit dem Symbolname des Makrokasten in einem Skript verwurschteln. ------------------ Frauen Komplimente machen, ist wie Topfschlagen im Minenfeld! Es sind immer nur ein paar mm zwischen Leben und Tod Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RomyZ Mitglied Dipl.-Ing (BA) Elektrotechnik
Beiträge: 1445 Registriert: 09.11.2010 Eplan Professional P8 2.2 ... 2022 Eplan Professional ProPanel Engineering Center (ECAD+TEXT+WORD)
|
erstellt am: 08. Jan. 2015 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für DanielPa
Hi Daniel Du kommst auch in EPLAN an die Eigenschaft... Geht über Blockeigenschaft: (Artikel > Artikel, allgemein > Artikel 1) [117,1<22145,0,0,0,0,0,0,0,0,de_DE,0,0,0,0,0,0>] ggf musst du noch die Zwischenebene der Hauptfunktion reinbringen Dann kannst du das auch in deiner Beschriftung exportieren (Betriebsmittelliste oder so was ähnl.) EDIT: Das ist die Eigenschaft auf dem Bauteil nicht auf dem Kasten, daher hilft dir das wahrscheinlich nicht weiter.... ------------------ Romy [Diese Nachricht wurde von RomyZ am 08. Jan. 2015 editiert.] 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: 08. Jan. 2015 19:52 <-- editieren / zitieren --> Unities abgeben:
Hallo ihr zwei, danke für eure Antworten. Ich hätte vielleicht noch mein finales Ziel verraten sollen. Ich möchte in einem Script SwitchMacroVariant die Auswahl der Varianten auf die tatsächlich in der Datei vorhanden Varianten kürzen. Hierzu benötige ich den Dateinamen aus dem aktuell selektierten Makrokasten um dann die Varianten im XML zählen zu können. Mit der oben aufgeführten Variante komme ich zwar über die zugehörigen Objekte auf den Makronamen jedoch geht hierdurch die Auswahl im GED verloren und ich kann die Variante nicht mehr per Action setzen. @Matthes: selbst wenn XGedSelectSameObjectAction Contextparameter hätte weiß ich nicht wie die heißen. @Romy: Mit der Eigenschaft 24068 würde das schon gehen aber siehe oben :-/ @Ich: Seh einfach ein, dass Scripting nicht für sowas gemacht ist :,( 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 |