| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: C# Sprache ermitteln (2358 mal gelesen)
|
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 23. Feb. 2017 13:47 <-- editieren / zitieren --> Unities abgeben:
|
nairolf Ehrenmitglied Elektroingenieur
Beiträge: 1987 Registriert: 21.01.2006 EPLAN Electric P8 2022.0.3 Update 2 (Build 17673) EPLAN Pro Panel Professional Addon EPLAN Fluid Addon
|
erstellt am: 23. Feb. 2017 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für MarcCore
Meinst Du per Script ? (Bisschen präzisere Fragestellung erleichtern das Helfen). Falls ja: Wie fast alles wenn es um Lesen von Projekteinstellungen geht. XML exportieren, parsen , fertig. ------------------ Der Fuchs ist schlau und stellt sich dumm. Bei vielen ist es andersrum ------------------------------------------ Da lernt man mühevoll laufen und sprechen, und nun soll ich stillsitzen und die Klappe halten ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 23. Feb. 2017 15:08 <-- editieren / zitieren --> Unities abgeben:
|
nairolf Ehrenmitglied Elektroingenieur
Beiträge: 1987 Registriert: 21.01.2006 EPLAN Electric P8 2022.0.3 Update 2 (Build 17673) EPLAN Pro Panel Professional Addon EPLAN Fluid Addon
|
erstellt am: 23. Feb. 2017 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für MarcCore
Kürzer kaum, präziser wohl Die API kann man auch in C# schreiben, daher sagt benutzte Sprache nichts darüber aus, wie man es lösen kann. Wie es im Script geht, habe ich oben schon formuliert, eine Action dafür gibt es m.W. nicht... ------------------ Der Fuchs ist schlau und stellt sich dumm. Bei vielen ist es andersrum ------------------------------------------ Da lernt man mühevoll laufen und sprechen, und nun soll ich stillsitzen und die Klappe halten ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 24. Feb. 2017 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für MarcCore
GuiLanguageProjectLanguages Leider habe ich nix gefunden für Anzeigesprachen, aber hier für Sprache Variabel:
Code:
class GetProjectVariableLanguage { /* Usage private static string GetProjectVariableLanguage() { string value = null; ActionCallingContext actionCallingContext = new ActionCallingContext(); new CommandLineInterpreter().Execute("GetProjectVariableLanguage", actionCallingContext); actionCallingContext.GetParameter("value", ref value); return value; } */ private readonly string TempPath = Path.Combine( PathMap.SubstitutePath("$(TMP)"), "GetProjectLanguages.xml"); [DeclareAction("GetProjectVariableLanguage")] public void Action(out string value) { ActionCallingContext actionCallingContext = new ActionCallingContext(); actionCallingContext.AddParameter("prj", FullProjectPath()); actionCallingContext.AddParameter("node", "TRANSLATEGUI"); actionCallingContext.AddParameter("XMLFile", TempPath); new CommandLineInterpreter().Execute("XSettingsExport", actionCallingContext); if (File.Exists(TempPath)) { string languagesString = GetValueSettingsXml(TempPath, "/Settings/CAT/MOD/Setting[@name='VAR_LANGUAGE']/Val"); if (languagesString != null) { value = languagesString; return; } } value = null; return; } // Returns the EPLAN Project Path private static string FullProjectPath() { ActionCallingContext acc = new ActionCallingContext(); acc.AddParameter("TYPE", "PROJECT"); string projectPath = string.Empty; new CommandLineInterpreter().Execute("selectionset", acc); acc.GetParameter("PROJECT", ref projectPath); return projectPath; } // Read EPLAN XML-ProjectInfo and returns the value private static string GetValueSettingsXml(string filename, string url) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(filename); XmlNodeList rankListSchemaName = xmlDocument.SelectNodes(url); if (rankListSchemaName != null && rankListSchemaName.Count > 0) { // Get Text from MultiLanguage or not :) string value = rankListSchemaName[0].InnerText; return value; } else { return null; } } }
P.S.: Mir war auch nicht klar ob du GUI oder Projektsprache willst... denke aber Projektsprache... ------------------ → Scripting in EPLAN ist einfach (toll)!
→ Scripte & Anwendungen rund um EPLAN! [Diese Nachricht wurde von Jonny Wire am 24. Feb. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 28. Feb. 2017 07:18 <-- editieren / zitieren --> Unities abgeben:
|
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 28. Feb. 2017 15:13 <-- editieren / zitieren --> Unities abgeben:
|
Braini87 Mitglied Technischer Redakteur
Beiträge: 270 Registriert: 11.07.2008 EPLAN Eletric P8 2.7 Prof. HF5 EPLAN ProPanel Prof.
|
erstellt am: 01. Mrz. 2017 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für MarcCore
|
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 01. Mrz. 2017 11:36 <-- editieren / zitieren --> Unities abgeben:
Also ich habe jetzt nur : C# ISOCode.Language guiLanguage = new Languages().GuiLanguage.GetNumber(); Nur leider bin ich nicht der Profi im programmieren wie kann ich den einfach die Sprache in eine Variable schreiben. Oder sonst irgendwie für eine If Steuerung verwenden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 03. Mrz. 2017 07:00 <-- editieren / zitieren --> Unities abgeben:
Hey super Leute , ich habe es zum laufen gekriegt. Funktioniert genauso wie ich es haben wollte. Jetzt noch eine kleine Fragen: Ich möchte gerne an den Eintrag <10014> Kommission aus den Projekteigenschaften lesen. Wie würde das funktionieren ? [Diese Nachricht wurde von MarcCore am 03. Mrz. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 03. Mrz. 2017 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für MarcCore
|
| Projektingenieur (m/w/d) Elektroplanung, Schwerpunkt Energietechnik | Wir sind ein international agierendes, innovatives Unternehmen innerhalb einer mittelständischen Unternehmensgruppe. Wir bieten unseren Kunden hoch spezialisierte Lösungen in den Geschäftsbereichen Umweltüberwachung, Wassertechnologie und mineralische Rohstoffe und haben uns als Industrieforschungs- und Entwicklungszentrum für fortgeschrittene Technologien auf diesen Gebieten etabliert. ... | Anzeige ansehen | Projektmanagement |
|
MarcCore Mitglied
Beiträge: 597 Registriert: 24.01.2014 Eplan P8 2.7/ 2.9
|
erstellt am: 06. Mrz. 2017 06:59 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Jonny Wire: GuiLanguageProjectLanguages Leider habe ich nix gefunden für Anzeigesprachen, aber hier für Sprache Variabel:
Code:
class GetProjectVariableLanguage { /* Usage private static string GetProjectVariableLanguage() { string value = null; ActionCallingContext actionCallingContext = new ActionCallingContext(); new CommandLineInterpreter().Execute("GetProjectVariableLanguage", actionCallingContext); actionCallingContext.GetParameter("value", ref value); return value; } */ private readonly string TempPath = Path.Combine( PathMap.SubstitutePath("$(TMP)"), "GetProjectLanguages.xml"); [DeclareAction("GetProjectVariableLanguage")] public void Action(out string value) { ActionCallingContext actionCallingContext = new ActionCallingContext(); actionCallingContext.AddParameter("prj", FullProjectPath()); actionCallingContext.AddParameter("node", "TRANSLATEGUI"); actionCallingContext.AddParameter("XMLFile", TempPath); new CommandLineInterpreter().Execute("XSettingsExport", actionCallingContext); if (File.Exists(TempPath)) { string languagesString = GetValueSettingsXml(TempPath, "/Settings/CAT/MOD/Setting[@name='VAR_LANGUAGE']/Val"); if (languagesString != null) { value = languagesString; return; } } value = null; return; } // Returns the EPLAN Project Path private static string FullProjectPath() { ActionCallingContext acc = new ActionCallingContext(); acc.AddParameter("TYPE", "PROJECT"); string projectPath = string.Empty; new CommandLineInterpreter().Execute("selectionset", acc); acc.GetParameter("PROJECT", ref projectPath); return projectPath; } // Read EPLAN XML-ProjectInfo and returns the value private static string GetValueSettingsXml(string filename, string url) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(filename); XmlNodeList rankListSchemaName = xmlDocument.SelectNodes(url); if (rankListSchemaName != null && rankListSchemaName.Count > 0) { // Get Text from MultiLanguage or not :) string value = rankListSchemaName[0].InnerText; return value; } else { return null; } } }
P.S.: Mir war auch nicht klar ob du GUI oder Projektsprache willst... denke aber Projektsprache...
Hallo Leute ich habe noch eine Frage dazu. Ich möchte gerne den kompletten Code in eine Funktion bringen, damit ich diese im meinem Skript mehrfach aufrufen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |