script

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|

EplanBackupDeleter 1.1

Ein kleines Update.

Grund dafür ist, dass EPLAN ihre Namenskonvention der Backup-Projekte geändert hat.

Ich habe nun die Auswahl für kommende Versionen mit x.0 ergänzt (in der Hoffnung dass dies so weitergeführt wird).

Vielen Dank an Thomas für die Rückmeldung :biggrin:

EplanBackupDeleter Video (1733 Downloads )

EplanBackupDeleter Setup 1.1 (1550 Downloads )

EplanBackupDeleter Source 1.1 (1541 Downloads )

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