Blog

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 (1718 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|

SetStringSetting

Weiß ja nicht ob ihr es wusstet, ich nicht… Man kann in EPLAN eigene Settings erstellen und dann (wie bekannt) abrufen.

Das ermöglicht einiges im Scripting. So können Pfade, Fensterpositionen, usw. gespeichert werden.

Anbei ein Beispiel um ein String Setting zu erstellen und diesem Werte zuzuweisen.

SetStringSetting (1371 Downloads )

using System.Windows.Forms;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

public class SetStringSetting
{
    [Start]
    public void SetStringSettingVoid()
    {
        const string SettingPath = "USER.SCRIPTS.SUPLANUS";
        Eplan.EplApi.Base.Settings oSettings = new Eplan.EplApi.Base.Settings();

        // Check if setting exists
        if (oSettings.ExistSetting(SettingPath))
        {
            oSettings.DeleteSetting(SettingPath);
            MessageBox.Show("Setting removed.", SettingPath);
        }

        // Add setting
        oSettings.AddStringSetting(
            SettingPath,
            new string[] {},
            new string[] {},
            "My setting from Suplanus",
            new string[] {@"Default value of test setting"},
            ISettings.CreationFlag.Insert
            );

        // Add setting values
        oSettings.SetStringSetting(SettingPath, "Message 0", 0);
        oSettings.SetStringSetting(SettingPath, "Message 1", 1);
        oSettings.SetStringSetting(SettingPath, "Message 2", 2);
        MessageBox.Show("Setting OK.", SettingPath);

        // Show setting values
        string value = oSettings.GetStringSetting(SettingPath, 1);
        MessageBox.Show("Value of Index " + 1 + ":\n" + value, SettingPath);
    }
}
Von |2017-11-09T12:23:47+01:002012-05-14|EPLAN, EPLAN-Scripts|

InsertPageMacro

Anbei eine Möglichkeit ein Seitenmakro per Script einzufügen. Diese Action ist nicht von EPLAN dokumentiert.

InsertPageMacro (1877 Downloads )

using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;

public class InsertPageMacro
{
    [Start]
    public void InsertPageMacroVoid()
    {
        string strFilename = @"C:\test.emp";

        ActionCallingContext oAcc = new ActionCallingContext();
        CommandLineInterpreter oCLI = new CommandLineInterpreter();

        oAcc.AddParameter("filename", strFilename);
        oCLI.Execute("XMInsertPageMacro", oAcc);
    }
}
Von |2017-11-09T12:23:49+01:002012-05-09|EPLAN, EPLAN-Scripts|
Nach oben