LoadUnloadAllScripts
Mit diesem Script könnt Ihr schnell und einfach alle Scripte im Stammdaten-Ordner laden oder entladen. Hierfür werden zwei Menüeinträge erzeugt.
Vielen Dank an Florian Zauner für das Bereitstellen!
Mit diesem Script könnt Ihr schnell und einfach alle Scripte im Stammdaten-Ordner laden oder entladen. Hierfür werden zwei Menüeinträge erzeugt.
Vielen Dank an Florian Zauner für das Bereitstellen!
Es gibt ein Update für das Script SetMacroBoxName.
Mit den Parametern EXTENSION und GETNAMEFROMLEVEL kann das Verhalten des Scriptes an die jeweilige Anforderung angepasst werden. Es wurde der Parameter “P” hinzugefügt um den Namen der Seite zu verwenden.
Vielen Dank an FrankS für das Update!
Des öfteren wird in Online-Foren gefragt, welche Events es in EPLAN gibt.
Im Nachbarblog von Luc Morin wurde eine klevere Lösung zum Loggen von Events bereitgestellt.
Script laden und ihr könnt die ausgeführten Events (eigentlich Befehlszeile) sehen.
using System;
using System.IO;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;
public class SimpleEventHandler
{
[Start]
[DeclareEventHandler("onActionEnd.String.*")]
public long MyEventHandlerFunction2(IEventParameter iEventParameter)
{
try
{
EventParameterString oEventParameterString = new EventParameterString(iEventParameter);
String strActionName = oEventParameterString.String;
StreamWriter sw;
FileInfo fi = new FileInfo(@"C:\Test\Events.txt");
sw = fi.AppendText();
sw.WriteLine("oCLI.Execute(\"onActionEnd.String.{0}\");", strActionName);
sw.Close();
}
catch (InvalidCastException exc)
{
System.Windows.Forms.MessageBox.Show("Parameter error: " + exc.Message, "MyEventHandler");
}
return 0;
}
}
Dank FrankS gibt es ein kleines schönes Update für das Bookmarks-Script.
Changelog:
04.06.2012, V1.1.0
- Eplan Versionsnummer als Unterscheidung mit aufgenommen, Danke an Marco für den Hinweis.
05.06.2012, V1.1.1
- Eplan Versionsnummer wird nun aus EPLAN.exe (ab V2.1) oder W3U.exe (bis V2.0) ermittelt.
21.08.2012, V2.0.0
- Lesezeichen Tooltip zeigt nun den kompletten Pfad des Projektes an.
- Es wird nun das vorhanden sein der Projekte getestet und ggf. das Lesezeichen grau dargestellt, das Lesezeichen bleibt aber weiter aktiv (geht im ListView nicht anders)
- Neuer Menüpunkt ‘Akualisieren (F5)’ ins Kontextmenü eingebaut (Taste F5 geht nicht im Scripting)
- Menüpunkt “Lesezeichen” ist nun unter “Schließen” im Projekt-Menü gewandert. (Wegen Select-Versionen)
08.10.2012, V2.1.0
- Lesezeichen können nun nach oben/unten verschoben werden.
Anbei ein Script von Nairolf um einfach und schnell die Adressen zu tauschen (EA/IQ).
Vielen Dank!
using System.Collections;
using System.Windows.Forms;
// © by NAIROLF
// SPS-Mnemonik (E/A - I/Q) in "Adressen / Zuordnungslisten" einfach umschalten
//#############################################################################################
// ChangeLog:
// --------------------------------------------------------------------------------------------
// 2012-12-27 V1.0 NAIROLF Ersterstellung
//#############################################################################################
public class NAIROLF_ContextMenu_ChangePLCMnemonics
{
public static string sSourceText = string.Empty;
[DeclareAction("NAIROLF_ChangePLCMnemonics")]
public void ChangePLCMnemonik(string DestMnemonik)
{
//Prüfe Zielmnemonik
if (DestMnemonik == string.Empty)
{
//keine Zielmnemonik definiert
return;
}
//Zwischenablage leeren
System.Windows.Forms.Clipboard.Clear();
//Zwischenablage füllen
CommandLineInterpreter oCLI = new CommandLineInterpreter();
oCLI.Execute("GfDlgMgrActionIGfWind /function:Copy");
//Mnemonik-Tausch versuchen
#region change mnemonik
if (System.Windows.Forms.Clipboard.ContainsText())
{
sSourceText = System.Windows.Forms.Clipboard.GetText();
if (sSourceText != string.Empty)
{
switch (DestMnemonik)
{
case "IQ":
//sSourceText = sSourceText.Replace("PED", "PID").Replace("PAD", "PQD").Replace("PEW", "PIW").Replace("PAW", "PQW").Replace("ED", "ID").Replace("AD", "QD").Replace("EW", "IW").Replace("AW", "QW").Replace("EB", "IB").Replace("AB", "QB").Replace("E", "I").Replace("A", "Q");
sSourceText = sSourceText.Replace("E", "I").Replace("A", "Q");
break;
case "EA":
//sSourceText = sSourceText.Replace("PID", "PED").Replace("PQD", "PAD").Replace("PIW", "PEW").Replace("PQW", "PAW").Replace("ID", "ED").Replace("QD", "AD").Replace("IW", "EW").Replace("QW", "AW").Replace("IB", "EB").Replace("QB", "AB").Replace("I", "E").Replace("Q", "A");
sSourceText = sSourceText.Replace("I", "E").Replace("Q", "A");
break;
default:
return;
break;
}
try
{
System.Windows.Forms.Clipboard.SetText(sSourceText);
oCLI.Execute("GfDlgMgrActionIGfWind /function:Paste");
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
#endregion
}
[DeclareMenu()]
public void CreateContextMenus()
{
Eplan.EplApi.Gui.ContextMenuLocation oCTXLoc = new Eplan.EplApi.Gui.ContextMenuLocation();
Eplan.EplApi.Gui.ContextMenu oCTXMenu = new Eplan.EplApi.Gui.ContextMenu();
#region 1st menu-entry
try
{
oCTXLoc.DialogName = "XPlcIoDataDlg";
oCTXLoc.ContextMenuName = "1024";
oCTXMenu.AddMenuItem(oCTXLoc, "[SPS-Mnemonik tauschen]: E/A -> I/Q", "NAIROLF_ChangePLCMnemonics /DestMnemonik:IQ", false, false);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "Error...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
#region 2nd menu-entry
try
{
oCTXLoc.DialogName = "XPlcIoDataDlg";
oCTXLoc.ContextMenuName = "1024";
oCTXMenu.AddMenuItem(oCTXLoc, "[SPS-Mnemonik tauschen]: I/Q -> E/A", "NAIROLF_ChangePLCMnemonics /DestMnemonik:EA", false, false);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "Error...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
}
}