Archiv für den Monat: Mai 2012

SetSettingExampleWindowLocation

Noch ein Beispiel um mit Settings zu arbeiten.

Hier wird die Location (Position) des Fensters gespeichert.

Ich habe hier bewusst mit stillen Exceptions gearbeitet um sicherzustellen, dass der Form auch geschlossen werden kann.

Leider konnte ich nicht mit numerischen Settings arbeiten, denke das diese zwar als INT in der Dokumentation beschrieben werden, aber EPLAN sie als UINT verarbeitet. Negative Werte sind nicht möglich sind (z.B. zweiter Bildschirm links: X < 0)

SetSettingExampleWindowLocation (1427 Downloads )

    private void SettingsGet()
    {
        if (!oSettings.ExistSetting(SettingPathWindowLocation)) // Create setting
        {
            oSettings.AddStringSetting(
                SettingPathWindowLocation,
                new string[] {},
                new string[] {},
                "Location of the form",
                new string[] {},
                ISettings.CreationFlag.Insert
                );
        }
        else // Get setting
        {
            try
            {
                this.Location = new Point(
                    Convert.ToInt32(oSettings.GetStringSetting(SettingPathWindowLocation, 0)),
                    Convert.ToInt32(oSettings.GetStringSetting(SettingPathWindowLocation, 1))
                    );
                Refresh();
            }
            catch (System.Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
        }
    }

    private void SettingsSet()
    {
        try
        {
            oSettings.SetStringSetting(SettingPathWindowLocation, this.Location.X.ToString(), 0);
            oSettings.SetStringSetting(SettingPathWindowLocation, this.Location.Y.ToString(), 1);
        }
        catch (System.Exception ex)
        {
            //MessageBox.Show(ex.Message);
        }
    }

 

Von |2017-11-09T12:23:47+01:002012-05-25|EPLAN, EPLAN-Scripts|

Übersetzung mit Transposh

Suplanus in allen Sprachen…

Naja wohl ein Wunschtraum  :whistle:

Aufgrund verschiedener Useranfragen habe ich nun eine automatische Google-Übersetzung eingebaut. Das ganze funktioniert mit dem Worpress-Plugin Transposh. Hier gibt es auch die Möglichkeit direkt die Übersetzung zu ändern. Dieses Feature schalte ich aber nur für bestimmte User frei. Hier nehme ich gerne Anmeldungen entgegen und würde mich sehr freuen.

Ist gibt schon lange eine Überlegung meinerseits die Beiträge auch in englisch zu verfassen. Da mir aber selbst bei den deutschsprachigen Beiträgen oft die Zeit fehlt, habe ich diesen Gedanken wieder fallen gelassen.

Ich selbst bin kein Fan einer Google-Übersetzung und lese meist in englisch (schlag aber Begriffe bei Google nach).

 

Von |2012-05-24T12:22:53+02:002012-05-24|Allgemein|

Podcasts

Heute mal wieder eine allgemeine Empfehlung meinerseits. Da ich viel mit dem Auto unterwegs bin (ca. 1,5h pro Tag), suche ich stetig Audio-Content um mir die Zeit zu vertreiben.

Anfangs hörte ich viele Hörspiele, was aber sehr monoton und zu anspruchslos war (Müdigkeit setzte ein). Vor ca. 2 Jahre stolperte ich über einige Technik-Podcasts welche ich mir dann mal zu Gemüte geführt habe.

Aber was sind Podcasts eigentlich? Hier ein kleiner Auszug aus der Wikipedia:

Podcasting bezeichnet das Produzieren und Anbieten abonnierbarer Mediendateien (Audio oder Video) über das Internet. Das Kofferwort setzt sich aus der Markenbezeichnung iPod für einen tragbaren MP3-Spieler und Broadcasting zusammen. Ein einzelner Podcast (deutsch: einHörstück, genauer Hördatei oder Bewegtbilddatei) ist somit eine Serie von Medienbeiträgen (Episoden), die über einen News Feed (meistens RSS) automatisch bezogen werden können.

Ein sehr informativer Vortrag auf der re:publica hat mich eigentlich auf diesen Artikel gebracht. Der Urvater des deutschen Podcastings, Tim Pritlove, erzählt warum Podcasts in der heutigen Medienlandschaft wichtig sind und wichtiger werden (sollten).

Ich habe nun schon eine Reihe verschiedener, meist technik lastige, Podcasts auf meinem iPhone-Client (Instacast). Damit komm ich gut über die Woche oder auch gut durch Urlaub / Reisen.

Hier ein kleiner Auszug von meiner Playlist:

Von |2015-07-27T11:31:00+02:002012-05-23|Allgemein|

SetSortCode

Endlich darf ich mal auf einen anderen EPLAN-Blog hinweisen. Dieser ist englischsprachig und wird von Luc Morin gepflegt. Die Seite findet ihr unter http://www.stlm.ca/.

An dieser Stelle vielen Dank!

Mit dem Script wird das Sortieren bzw. Nummerieren vereinfacht. Am besten seht ihr euch das Beispielvideo von Luc an.

 

 

Das Script ist auf Github zu finden:

SetSortCode

//Created by Luc Morin, November 2011
//http://www.stlm.ca
public class MultiLevelSortCode
{
	[DeclareAction("SetSortCodeAction")]
	public void SetSortCodeAction()
	{
		//Use a Command Line Interpreter to call the Action
		CommandLineInterpreter CLI = new CommandLineInterpreter();

		Eplan.EplApi.Base.Settings set = new Eplan.EplApi.Base.Settings();
		if(!set.ExistSetting("USER.SCRIPTS.SORTCODE"))
		{
			bool bOk = set.AddNumericSetting("USER.SCRIPTS.SORTCODE",  new int[] { 0 },
				new Range[] { new Range { FromValue = 0, ToValue = 32768}}, "Sort code setting", new int[] { 0 },
				ISettings.CreationFlag.Insert);
		}

		int index = set.GetNumericSetting("USER.SCRIPTS.SORTCODE", 0);

		ActionCallingContext ctx1 = new ActionCallingContext();
		ctx1.AddParameter("propertyID","20809"); //Sort code
		ctx1.AddParameter("propertyIndex","0");
		ctx1.AddParameter("propertyValue", index.ToString());
		CLI.Execute("XEsSetPropertyAction", ctx1);

		set.SetNumericSetting("USER.SCRIPTS.SORTCODE", ++index, 0);

		return;

	}

	[DeclareMenu]
	public void SetSortCodeMenuFunction()
	{
		Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();
		oMenu.AddMenuItem("Set sort code", "SetSortCodeAction");
	}

	[DeclareAction("ResetSortCodeAction")]
	public void ResetSortCodeAction()
	{
		//Use a Command Line Interpreter to call the Action
		CommandLineInterpreter CLI = new CommandLineInterpreter();

		Eplan.EplApi.Base.Settings set = new Eplan.EplApi.Base.Settings();
		if(!set.ExistSetting("USER.SCRIPTS.SORTCODE"))
		{
			bool bOk = set.AddNumericSetting("USER.SCRIPTS.SORTCODE",  new int[] { 0 },
				new Range[] { new Range { FromValue = 0, ToValue = 32768}}, "Sort code setting", new int[] { 0 },
				ISettings.CreationFlag.Insert);
		}

		set.SetNumericSetting("USER.SCRIPTS.SORTCODE", 0, 0);

		return;

	}

	[DeclareMenu]
	public void ResetSortCodeMenuFunction()
	{
		Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();
		oMenu.AddMenuItem("Reset sort code", "ResetSortCodeAction");
	}

}
Von |2017-11-09T12:23:47+01:002012-05-22|EPLAN, EPLAN-Scripts|

SetStringSettingExamplePath

Anbei ein Beispiel wie man die Settings nutzen kann.

Mit diesem Script kann ein Pfad gesetzt werden. Dieser wird gespeichert und beim erneuten Ausführen des Scriptes geladen.

SetSettingExamplePath (1567 Downloads )

 

private void frmSetSettingExamplePath_Load(object sender, System.EventArgs e)
{
    // Check if setting exists
    if (!oSettings.ExistSetting(SettingPath))
    {
        // Add setting
        oSettings.AddStringSetting(
            SettingPath,
            new string[] {},
            new string[] {},
            "FolderBrowseDialog Path",
            new string[] {@"Default value of test setting"},
            ISettings.CreationFlag.Insert
            );
        // Add setting value
        oSettings.SetStringSetting(SettingPath, Environment.GetFolderPath(Environment.SpecialFolder.Desktop), 0);
        txtPath.Text = oSettings.GetStringSetting(SettingPath, 0);
    }
    else
    {
        // Load values
        txtPath.Text = oSettings.GetStringSetting(SettingPath, 0);
    }
}

private void btnPath_Click(object sender, System.EventArgs e)
{
    // Check if directory exists
    if (Directory.Exists(txtPath.Text))
    {
        fbd.SelectedPath = txtPath.Text;
    }
    else
    {
        fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    }

    // Set path to setting
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        txtPath.Text = fbd.SelectedPath;
        oSettings.SetStringSetting(SettingPath, fbd.SelectedPath, 0);
    }
}
Von |2017-11-09T12:23:47+01:002012-05-16|EPLAN, EPLAN-Scripts|
Nach oben