Blog

NETMF

Wie ihr vielleicht bemerkt habt, hat es seit länger Zeit kein Update zum Netduino gegeben.

Anfangs wollte ich mir einen Netduino Go! kaufen, aber als ich mich umschaute gefiel mir der Gadgeteer besser. Ist offiziell von Microsoft unterstützt, zumal aber auch schlechter dokumentiert.

Selbst als gelernter Elektroniker macht mir das zusammenbauen, berechnen von Strömen, Widerständen, usw. weniger Spaß als das Programmieren. Aus diesem Grund wollte ich einen Mikrocontroller mit Sockets. Meine wahl viel dann auf den Gadgeteer.

Lange Rede, kurzer Sinn. Die Kategorie Netduino habe ich in NETMF unbenannt, da dies der allgemeine Überbegriff ist.

NETMF = Microsoft .NET Micro Framework

 

Von |2017-09-18T08:52:03+02:002012-06-08|NETMF|

CompressPartsDatabase

Update

Frank Schöneck, 01.06.2012 V2.0.0

  • Eplan eigene Action für CompressDataBase verwendet.
  • Script kann geladen oder ausgeführt werden.

Danke nochmal an Frank!

 

Anbei ein kleines Script, welches unter Dienstprogramme/Artikel einen Menüpunkt “Artikeldatenbank komprimieren” hinzufügt. Das ganze funktioniert nur in Verbindung einer Access-Artikeldatenbank (Eplan-Standard) funktioniert.

Wenn die Komprimierung durchgeführt wird darf kein anderer Anwender auf die Datenbank zugreifen.

Durch die Kompression verringert sich die Größe enorm und die Geschwindigkeit nimmt zu :w00t:

Vielen Dank an FrankS!

CompressPartsDatabase 2.0.0 (2233 Downloads )

 

' CompressPartsDatabase, Version 2.0.0, vom 01.06.2012
'
' Führt eine Komprimierung der aktuell eingestellten Artikeldatenbank durch.
' Es wird eine Sicherheitskopie mit der Dateiendung '.Backup' angelegt.
'
' Copyright by Frank Schöneck, 2009
' letzte Änderung: Frank Schöneck, 31.08.2009 V1.0.0
'                  Frank Schöneck, 01.06.2012 V2.0.0, -Eplan eigene Action für CompressDataBase verwendet.
'                                                     -Script kann geladen oder ausgeführt werden.
'
' für Eplan Electric P8, ab V2.1.6
'

Imports System.IO

Public Class CompressPartsDatabase
	 _
	Public Sub MyFunction()
		CompressPartsDatabase()
	End Sub

	 _
	Public Sub CompressPartsDatabase_Menu()
		Dim oMenu As New Eplan.EplApi.GUI.Menu()
		oMenu.AddMenuItem("Artikeldatenbank komprimieren...", "CompressPartsDatabase", "Es wird die aktuell eingestellte Artikeldatenbank komprimiert", 35177, 1, True, False)
	End Sub

	 _
	Public Sub CompressPartsDatabase()

		Dim oSettings As New Eplan.EplApi.Base.Settings()
		Dim DatabaseName As String
		Dim DatabaseNameBackup As String
		Dim Result As DialogResult
		Dim boReturn As Boolean
		Dim NewLine As String = Environment.NewLine
		Dim Meldung As String

		'Einstellung 'Artikeldatenbank' auslesen
		DatabaseName = oSettings.getStringSetting("USER.PartsManagementGui.Database", 0)

		'Variablen auslesen und ersetzen
		DatabaseName = PathMap.SubstitutePath(DatabaseName)

		'Namen der Backup-Datei festlegen
		DatabaseNameBackup = DatabaseName & ".Backup"

		'Sicherheitsabfrage
		Meldung = "Soll die folgende Artikeldatenbank komprimiert werden?" & NewLine
		Meldung &= NewLine
		Meldung &= "'" & DatabaseName & "'" & NewLine
		Meldung &= NewLine
		Meldung &= "(Es wird im gleichen Ordner eine Sicherheitskopie mit der Dateiendung 'Backup' angelegt.)" & NewLine
		Result = MessageBox.Show(Meldung, "CompressPartsDatabase", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

		If Result = System.Windows.Forms.DialogResult.Yes Then
			'Cursur Warten anzeigen
			System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

			'Artikeldatenbank komprimieren
			boReturn = CompressParts(DatabaseName, DatabaseNameBackup)

			'Cursor wieder Standard
			System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

			'Ergebnismeldung anzeigen
			If boReturn = True Then
				Meldung = "Das komprimieren der Artikeldatenbank wurde erfolgreich durchgeführt." & NewLine
				Meldung &= NewLine
				Meldung &= "Dateigröße vorher: " & GetFileSize(DatabaseNameBackup) & NewLine
				Meldung &= "Dateigröße nachher: " & GetFileSize(DatabaseName) & NewLine
				MessageBox.Show(Meldung, "CompressPartsDatabase, Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
			ElseIf boReturn = False Then
				MessageBox.Show("Das komprimieren der Artikeldatenbank konnte nicht erfolgreich durchgeführt werden!", "CompressPartsDatabase, Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
			End If
		End If

	End Sub

	'Artikeldatenbank komprimieren
	Private Function CompressParts(ByVal DatabaseFilename As String, ByVal DatabaseFilenameBackup As String) As Boolean
		Try
			Dim cmdLineItp As New CommandLineInterpreter()
			Dim ACC As New ActionCallingContext
			Dim overwrite As Boolean = True

			'Backup anlegen
			File.Copy(DatabaseFilename, DatabaseFilenameBackup, overwrite)

			'PartsDatabase komprimieren
			ACC.AddParameter("Database", DatabaseFilename)
			cmdLineItp.Execute("XPamCompactDatabase", ACC)

			Return True
		Catch ex As Exception
			MessageBox.Show(ex.InnerException.ToString(), "CompressParts, Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Return False
		End Try
		Return False
	End Function

	'Anzeige der Dateigröße formatieren
	Private Function GetFileSize(ByVal path As String) As String
		Dim myFile As FileInfo
		Dim mySize As Single

		Try
			myFile = New FileInfo(path)
			If Not myFile.Exists Then
				mySize = 0
			Else
				mySize = myFile.Length
			End If
			Select Case mySize
				Case 0 To 1023
					Return Microsoft.VisualBasic.Format(mySize, "#,###") & " Bytes"
				Case 1024 To 1048575
					Return Microsoft.VisualBasic.Format(mySize / 1024, "#,###0.00") & " KB  (" & Microsoft.VisualBasic.Format(mySize, "#,###") & " Bytes)"
				Case 1048576 To 1043741823
					Return Microsoft.VisualBasic.Format(mySize / 1024 ^ 2, "#,###0.00") & " MB  (" & Microsoft.VisualBasic.Format(mySize, "#,###") & " Bytes)"
				Case Is > 1043741824
					Return Microsoft.VisualBasic.Format(mySize / 1024 ^ 3, "#,###0.00") & " GB  (" & Microsoft.VisualBasic.Format(mySize, "#,###") & " Bytes)"
			End Select
			Return "0 bytes"
		Catch ex As Exception
			Return "0 bytes"
		End Try

	End Function

End Class
Von |2017-11-09T12:23:47+01:002012-06-06|EPLAN, EPLAN-Scripts|

Bookmarks

Mit diesem Script könnt ihr in EPLAN Bookmarks (Lesezeichen) für Projekte anlegen, welche ihr des öfteren benötigt.

Vielen Dank an FrankS für die Umsetzung!

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.

Bookmarks_V2.1 (1827 Downloads )

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

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 (1563 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|
Nach oben