EPLAN-API

Alles rund um die API in EPLAN

EPLAN-API: Showcase 2016 Oktober

Man merkt es hier bisl weniger, aber hab derzeit sehr viel mit der EPLAN API zu tun, was mir auch riesig Spaß macht.
Darum hier mal ein kleiner Auszug…

 

ToggleLayerTable

Viele von euch kennen bestimmt die API Erweiterung ToggleLayer. Mit der ist es möglich einzelne Ebenen umzuschalten. Aufgrund einer Kundenanforderung habe ich das ganze nun auch für die gesamte Ebenenverwaltung geschrieben. Der Action übergibt man einfach eine *.elc Datei, welche alle Ebenen beinhaltet und diese wird dann importiert.

Von |2016-10-20T07:36:57+02:002016-10-20|EPLAN, EPLAN-API|

EPLAN API: EPLAN Prozess in anderem Thread starten

Bei einer Offline Applikation hat man immer das Problem, man muss eine Oberfläche bereitstellen, welche immer reagiert und im besten Fall nicht einfriert.

Der EPLAN Prozess, braucht ziemlich lang zum hochfahren, darum will man den auch auslagern. Damit dieser aber in einem anderen Thread laufen kann ist folgender Code notwendig:

Thread newThread = new Thread(ThreadMethod);
newThread.SetApartmentState(ApartmentState.STA);
newThread.Start();

In der ThreadMethod()  kann dann EPLAN gestartet werden. Ich hatte es erst mit dem BackgroundWorker probiert, leider ist dieser MTA und somit nicht nutzbar.

Von |2016-10-11T13:39:53+02:002016-10-11|EPLAN, EPLAN-API|

EPLAN API: Geschachtelte Strukturen

Setzt man per EPLAN API die Strukturkennzeichen über die PagePropertyList, werden geschachtelte Strukturen (z.B. =F1.F2) nicht erkannt.

Als Workaround einfach bei den einzelnen Seiten folgendes ausführen:

page.Name = page.Name; // fix: sub name parts not recordnized by EPLAN (T1094079)

Sieht schlimm aus, darum auch bitte immer fleißig kommentieren :^)

Zu beachten: Es kann sein dass dadurch mehrere Strukturkennzeichen im Projekt erzeugt werden. Diese evtl. per Komprimierungslauf entfernen.

Von |2016-10-05T18:00:45+02:002016-10-10|EPLAN, EPLAN-API, EPLAN-Bugs|

IEplAddInShadowCopy

EPLAN hat zur 2.6 das Verhalten geändert bzgl. Laden von DLLs.
Es wird eine Schattenkopie auf dem lokalen Client erstellt. Das hat verschiedene Vorteile (wie .NET Sicherheitsrichtlinien usw.) aber eben auch Nachteile.

Einer davon ist dass man per Reflection nicht an den Speicherort im Netzwerk kommt.

Dafür hat EPLAN zur Version 2.6 Beta 3 das Interface IEplAddInShadowCopy bereitgestellt. Hier wird der original Pfad übergeben und man kann diesen weiterverarbeiten.

void IEplAddInShadowCopy.OnBeforeInit(string originalAssemblyPath)
{
   // Do something with the original path
}

Finde schön zu sehen dass schnell auf die Bedürfnisse der User reagiert wird!

Von |2016-06-02T07:30:04+02:002016-06-02|EPLAN, EPLAN-API|

EPLAN Bug 2.5: Funktionsschablone verändern

Beschreibung

Verändert man eine Funktionsschablone am Artikel per API, werden alle Produktgruppen auf undefiniert gestellt.

 

Workaround

if (part.PartNr.Equals("PXC.0708713"))
{
	MDTerminalTemplatePosition componentTemplatePosition = part.FunctionTemplatePositions.FirstOrDefault() as MDTerminalTemplatePosition;
	if (componentTemplatePosition != null)
	{
		// Bug 2.5: Issue T1048334 --> save and restore groups
		MDPartsDatabaseItem.Enums.ProductTopGroup productTopGroup = part.GenericProductGroup;
		MDPartsDatabaseItem.Enums.ProductGroup productGroup= part.ProductGroup;
		MDPartsDatabaseItem.Enums.ProductSubGroup productSubGroup = part.ProductSubGroup;
 
		// Set
		var newDesignation = @"111¶222";
		componentTemplatePosition.ConnectionPointDesignation = newDesignation;
 
		// Bug 2.5: Issue T1048334 --> save and restore groups
		part.GenericProductGroup = productTopGroup;
		part.ProductGroup = productGroup;
		part.ProductSubGroup = productSubGroup;
	}
}

Ticketnummer (T1048334). Der Support kann das Verhalten nachvollziehen und es wurde in EPLAN 2.6 behoben.

Von |2016-05-23T10:09:48+02:002016-05-23|EPLAN, EPLAN-API, EPLAN-Bugs|
Nach oben