EPLAN-Scripts

Projekt ermitteln bei Event OnPostOpenProject

Ich habe in einem Script verschiedene Eventhandler die was im Projektordner (DOC) machen…
Klappt auch alles wunderbar… bis auf das Event vom Projekt öffnen. Ist mehr als ein Projekt geöffnet stimmt die Pfadvariable nicht:

var docFolder = PathMap.SubstitutePath("$(DOC)");

 

Durch den (immer tollen) EPLAN API Support habe ich folgende Lösung:

[DeclareEventHandler("Eplan.EplApi.OnPostOpenProject")] // project open
public void EventProjectOpen(IEventParameter iEventParameter)
{
   EventParameterString eventParameterString = new EventParameterString(iEventParameter);
   string projectFile = eventParameterString.String;

   FileInfo fileInfo = new FileInfo(projectFile);
   string projectDirectory = projectFile.Replace(fileInfo.Extension, ".edb");
   var docFolder = Path.Combine(projectDirectory, "DOC");
}
Von |2017-11-09T11:22:14+01:002016-07-27|EPLAN, EPLAN-Scripts|

Debugging mit DebugView

Ich hatte ja schon erklärt wie man Scripte schön Debuggen kann…
Zusätzlich nutze ich aber auch gerne DebugView um “schnell mal zu schauen”. Ist besser als mit Messageboxen zu arbeiten.

Einfach im Code z.B. schreiben:

Debug.WriteLine(logFile);

Und die Ausgabe sieht dann wie folgt aus:

DebugView

Es muss nichts eingestellt werden.

Von |2017-11-09T11:22:14+01:002016-07-26|EPLAN, EPLAN-Scripts|

Schemata einlesen

Ich habe im Scripting eigentlich immer Schemata per new Settings().ReadSettings(Scheme) eingelesen…

Aber es gibt auch den Weg über SchemeSetting, wobei man hier genau steuern kann ob ein Schemata überschrieben werden soll:

var schemeFile = @"\\Mac\Home\Desktop\PXex.Test.xml";

SchemeSetting schemeSetting = new SchemeSetting();
schemeSetting.Init("USER.MacrosGui.PXF.Export.Schemes");
schemeSetting.ImportSchemes(schemeFile, true); // overwrite

Die Klasse gibt noch einiges her, so auch das setzen von einzelnen Filtereigenschaften…

Von |2017-11-09T11:22:14+01:002016-05-10|EPLAN, EPLAN-Scripts|

EPLAN Lizenzen überprüfen

Manchmal muss man prüfen welche Lizenz gerade läuft. Das geht per API und Scripting wie folgt:

License license = new License();
LicenseOptions licenseOptions = LicenseOptions.APIExtension;
if (license.HasOption(licenseOptions))
{
   // do some API things
}
Von |2017-11-09T11:22:14+01:002016-05-04|EPLAN, EPLAN-Scripts|

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