eplan

Eventlogger

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.

13-05-2013 12-17-57

 

Eventlogger (1608 Downloads )

 

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;
    }
}
Von |2017-11-09T12:23:45+01:002013-05-13|EPLAN, EPLAN-Scripts|

Bookmarks Update 2.1.0

Dank FrankS gibt es ein kleines schönes Update für das Bookmarks-Script.

05-06-2012-12-32-41

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.

Zur Projektseite…

Von |2017-11-09T12:23:45+01:002013-01-15|EPLAN, EPLAN-Scripts|

ChangePLCMnemonics

Anbei ein Script von Nairolf um einfach und schnell die Adressen zu tauschen (EA/IQ).

Vielen Dank!

10-01-2013 12-39-21

 

ChangePLCMnemonics (1322 Downloads )

 

 

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
    }      
}
Von |2017-11-09T12:23:45+01:002013-01-10|EPLAN, EPLAN-Scripts|

SetLanguageGui

Anbei ein kleines Script um die Projektsprache komfortabel umzuschalten.

27-12-2012

Ich hatte erst versucht ein dynamisches Menü zu machen, leider funktioniert dies aufgrund der eingeschränkten Funktionalität in EPLAN nicht.

Die Auflistung zeigt nur die im Projekt eingestellten Sprachen.

 

 

SetLanguageGui (1825 Downloads )

 

[DeclareAction("SetLanguageGui")]
public void Function()
{
	SetLanguageGui frm = new SetLanguageGui();
	frm.ShowDialog();
	return;
}

private void SetLanguageGui_Load(object sender, System.EventArgs e)
{
	string ActionReturnParameterValue = string.Empty;

	// Languagelist
	oCLI.Execute("GetProjectLanguages", acc);
	acc.GetParameter("LANGUAGELIST", ref ActionReturnParameterValue);
	string[] ProjectLanguages = ActionReturnParameterValue.Split(';');

	// VariableLanguage
	oCLI.Execute("GetVariableLanguage", acc);
	acc.GetParameter("LANGUAGELIST", ref ActionReturnParameterValue);
	string VariableLanguage = ActionReturnParameterValue;

	// Add languages
	foreach (string CurrentLanguage in ProjectLanguages)
	{
		if (CurrentLanguage != "")
		{
			ListViewItem liviItem = new ListViewItem();

			// Check if current language
			if (CurrentLanguage.Equals(VariableLanguage))
			{
				liviItem.Selected = true;
			}

			liviItem.Text = CurrentLanguage;

			// LanguageMapping
			foreach(string line in EplanLanguageList)
			{
				if(line.StartsWith(CurrentLanguage))
				{
					if (line.Split(';').Length > 1) liviItem.SubItems.Add(line.Split(';')[1]);
				}
			}
			liviLanguages.Items.Add(liviItem);
		}
	}

	// Sort & resize
	liviLanguages.Sorting = SortOrder.Ascending;
	liviLanguages.Sort();
}

private void btnCancel_Click(object sender, EventArgs e)
{
	this.Close();
}

private void liviLanguages_MouseDoubleClick(object sender, MouseEventArgs e)
{
	SetLanguage();
}

private void btnOk_Click(object sender, EventArgs e)
{
	SetLanguage();
}

private void SetLanguage()
{
	if (liviLanguages.SelectedItems.Count > 0)
	{
		string CurrentLanguage = liviLanguages.SelectedItems[0].Text;

		// Bug
		//acc.AddParameter("varLANGUAGE", CurrentLanguage);
		//acc.AddParameter("dispLANGUAGE", CurrentLanguage);
		//oCLI.Execute("ChangeLanguage", acc);
		oCLI.Execute("ChangeLanguage /varLANGUAGE:" + CurrentLanguage + " /dispLANGUAGE:\"" + CurrentLanguage + ";\"");

		this.Close();
	}
	else
	{
		MessageBox.Show("Keine Sprache gewählt");
	}

}

 

Von |2017-11-09T12:23:45+01:002013-01-09|EPLAN, EPLAN-Scripts|
Nach oben