Blog

Dash & Zeal offline Dokumentation

“Programmierer schreiben nur den ganzen Tag Code”… das höre ich oft, aber eigentlich lesen wir Dokumentation und im schlimmsten Fall kopieren wir einfach von StackOverflow.

Beider erleichtert mir seit kurzem ein Tool namens Dash für den Mac. Für Windows & Linux gibt es etwas ähnliches namens Zeal (OpenSource).

Ich kann leider nur von Dash berichten… und kann sagen dass es sehr angenehm ist damit zu arbeiten.

Schaut euch die Tools mal an, auch Dash kann man kostenlos testen.

Dash

Von |2016-04-18T10:04:54+02:002016-04-18|C#, Coding|

Pfadvariablen Update 2.6

Es sind wieder neue Pfadvariablen dazugekommen, Ihr findet findet die Daten hier:

EPLAN_Pfadvariablen

 

Neuerungen

  • $(EPLAN_EXECUTABLE): Pfad zur EPLAN.exe
  • $(EPLAN_VARIANT): Name der gestarteten Produktvariante
  • $(EPLAN_VERSION): Versionsnummer
  • $(EPLAN_VERSION_SHORT): Hauptversionsnummer
  • $(RIGHTS_DB_PATH): Pfad zur Rechtedatenbank
Von |2019-04-10T10:19:25+02:002016-04-14|EPLAN, EPLAN-Scripts|

EPLAN 2.6: Scripting Neuerungen

Die Betaversion für EPLAN 2.6 ist nun verfügbar und ich schreibe hier mal was ich bzgl. Scripting aus den News und der Hilfe lesen konnte.

Die Actions CreateTopologyFunctions und RouteTopology wurden in die Action Topology verschoben.

 

Folgende Actions sind nun (offiziell) hinzugekommen:

Action

Beschreibung

GenerateMacros

Erzeugt Makros aus einem Projekt.

SwitchProjectType

Schaltet die Eigenschaft “Art des Projekts” um.

Topology

Verlegt Topologie-Verbindungen oder erzeugt Topologie-Funktionen.

XEsUserPropertiesExportAction

Exportiert benutzerdefinierte Eigenschaften in eine Datei.

XEsUserPropertiesImportAction

Importiert benutzerdefinierte Eigenschaften aus einer Datei.

XPamsDeviceSelectionAction

Führt eine Geräteauswahl durch oder aktualisiert Gerätedaten.

XPrjActionUpgradeProjects

Aktualisiert ein oder mehrere Projekte auf das aktuelle Datenbankschema.

XSettingsExport

Exportiert Benutzer-, Stations- oder Firmeneinstellungen.

 

Die Action projectmanagement wurde erweitert um folgende Funktionen:

Projekt Korrigieren

/TYPE:CORRECTPROJECTITEMS
/SCHEME:"My scheme"

 

Projekt reorganisieren

/TYPE:REORGANIZE
/EXTENDEDMODE:1
Von |2018-12-11T08:08:35+01:002016-04-06|EPLAN, EPLAN-Scripts|

EPLAN-API: Showcase 2016 März

Bei der Version 2.4 sind in EPLAN benutzerdefinierte Eigenschaften hinzugekommen.
Erst habe ich mich gefreut. Leider gibt es mit diesen Eigenschaften viele Probleme. Übernimmt man z.B. aus einer alten Versionen einen Schaltplan, hat man keine Möglichkeit mehr den Namen zu ändern.

Darum habe ich mir eine kleine API-Erweiterung geschrieben welche eine Übernahme über eine Mapping-Tabelle macht.
Man kann festlegen welche Eigenschaft zu welcher konvertiert werden soll.

Es kann auch angegeben werden ob Werte nach der Konvertierung gelöscht werden sollen oder nicht.

 

SetUserDefProp

Von |2016-03-01T15:36:31+01:002016-03-31|EPLAN|

EPLAN API: UserDefinedPropertyDefinition

Die benutzerdefinierten Eigenschaften… die Idee von EPLAN war gut, aber die Umsetzung ist in meinen Augen nicht optimal.

Nichts desto Trotz müssen wir damit leben und das auch in der API. Es ist nicht ganz so einfach wie mit den “normalen” Eigenschaften.

Ich hab hier mal paar Methoden geschrieben um (Projekt-) Eigenschaften zu Lesen/Schreiben:

using System;
using System.Linq;
using Eplan.EplApi.Base;
using Eplan.EplApi.DataModel;

namespace Suplanus.Sepla.Helper
{
	public class UserDefiniedPropertyUtility
	{
		public static PropertyValue GetProjectPropertyValueAndCheckIfEmpty(Project project, string identName)
		{
			PropertyValue propertyValue = GetProjectPropertyValue(project, identName);
			if (propertyValue.IsEmpty)
			{
				return null;
			}
			return propertyValue;
		}

		public static PropertyValue GetProjectPropertyValue(Project project, string identName)
		{
			UserDefinedPropertyDefinition userDefProp = project.Properties.ExistingIds
				.Select(anyPropertyId => anyPropertyId.Definition)
				.OfType<UserDefinedPropertyDefinition>()
				.FirstOrDefault(obj => obj.IdentifyingName.Equals(identName));
			if (userDefProp != null)
			{
				AnyPropertyId anyPropertyId = userDefProp.Id;
				PropertyValue propertyValue = project.Properties[anyPropertyId];
				return propertyValue;
			}
			return null;
		}

		public static void SetProjectPropertyValue(Project project, string identName, object value)
		{
			PropertyValue propertyValue = GetProjectPropertyValue(project, identName);
			if (propertyValue != null)
			{
				if (value is bool)
				{
					propertyValue.Set((bool)value);
					return;
				}
				if (value is double)
				{
					propertyValue.Set((double)value);
					return;
				}
				if (value is MultiLangString)
				{
					propertyValue.Set((MultiLangString)value);
					return;
				}
				if (value is PointD)
				{
					propertyValue.Set((PointD)value);
					return;
				}
				if (value is int)
				{
					propertyValue.Set((int)value);
					return;
				}
				if (value is string)
				{
					propertyValue.Set((string)value);
					return;
				}
				if (value is DateTime)
				{
					propertyValue.Set((DateTime)value);
					return;
				}

				throw new Exception("Type not supported");
			}
			throw new Exception("Property not found");
		}
	}
}

 

Von |2017-11-09T11:22:51+01:002016-03-15|EPLAN, EPLAN-API|
Nach oben