EBSILON®Professional Online Dokumentation
In diesem Thema
    Erweiterungen für Experten
    In diesem Thema

    Berechnungs-Erweiterungen für Experten 

    Das Blatt "Experten" enthält Optionen für die XUI-Schnittstelle und KernelScripting.

    Mit diesen Optionen kann das in Ebsilon implementierte Verhalten eines Bauteils ersetzt werden durch selbst programmierten Code.

    Diese Möglichkeit wird von uns bei der Entwicklung neuer Bauteile genutzt, kann aber auch vom Anwender selbst genutzt werden. Der Anwender ist dann u. a. für das Formulieren und Absetzen der Gleichungen, das Konvergenzverhalten und das Errechnen der Ergebniswerte des Bauteils und der angeschlossenen (Ausgangs-)Leitungen zuständig. (Achtung: Hierfür ist die Lizenzoption EbsScript/EbsOpen notwendig.)

    Auch der Eigenschaftendialog selbst kann um selbst definierte Blätter erweitert werden.

     

    Das Verwenden der XUI-Schnittstelle bzw. eines KernelScripts erlaubt damit das Ersetzen des eigentlichen internen Berechnungs-Codes bei Ebsilon-Bauteilen durch benutzerdefinierten Code (EbsScript bzw. Code in Dll). In diesen Fällen verhält sich das Ebsilon-Standard-Bauteil wie ein Macro-Object, bei dem das Leitungsinterface und die Menge der Vorgabe-/Ergebniswerte, Kennlinien usw. allerdings fest vorgegeben sind.

     

    Komponenten-Berechnungsmodus (benutzerdefiniert):

    Die Berechnung jeder Komponente (insb. auch eines Makros) kann durch eine benutzerdefinierte Berechnung überschrieben werden.

    Folgende Einstellungen sind möglich:

     

            Berechnungsmodus: 0: Ebsilon-interne Berechnung (Das ist die Standard-Einstellung, Bauteilverhalten wie hier beschrieben)         

     

            Berechnungsmodus: 1: Benutzerdefiniertes KernelScript:

    Bauteil rechnet mittels eines Kernel-Scripts (wie Bauteil 93); der Zugriff auf Vorgabe-/Ergebniswerte durch die Funktionen: ksGetSPEC, ksGetRES, ksSetSPEC, ksSetRES
    ist nicht möglich, stattdessen kann aber mit der EbsScript-Syntax direkt über den Namen auf diese Werte zugegriffen werden. Das Script kann direkt über den Button Bearbeiten... erstellt und bearbeitet werden.

            Berechnungsmodus: 2: Benutzerdefinierte XUI-DLL:

    Bauteil rechnet mit einer vom Anwender selbst erstellten DLL, der sogenannten XUI-DLL (s. u..
               

    XUI_DLL (eXtensible User-Interface)

    Der Anwender kann eine DLL erstellen, die verwendet wird

    Bei Makros können mit der XUI-DLL auch Abhängigkeiten von Werten untereinander berücksichtigt werden: u. a. können Vorgabewerte in Abhängigkeit vom Wert eines anderen Vorgabewertes ausgeblendet werden.

    Bei Makros bedeutet eine Überschreibung durch eine benutzerdefinierte Berechnung, dass die Bauteile innerhalb des Makros nicht durch Ebsilon bzw. den Ebsilon-Rechenkern gerechnet werden, sondern ausschließlich über das Kernel-Script bzw. die XUI-DLL.

    Der Pfad zu dieser DLL muss auf dem Blatt „Experten“ des entsprechenden Bauteils bzw. Makros angegeben werden.

     

    Ein Beispiel hierfür finden Sie unter „Data\Examples\xui_dll_macro.ebs“.    

    Es gibt zwei verschiedene Header-Files:

    In beiden Dateien ist jeweils das zu implementierende Interface beschrieben.

    Das Berechnungs-Interface der XUI-DLL ist identisch mit dem für das Bauteil 65. 

    Der Zugriff auf Vorgabe-/Ergebniswerte, (Ergebnis-)Kennlinien, (Ergebnis-)Macros, ist ausschließlich durch das IDispatch-Interface des Bauteils mittels der EbsOpen-Schnittstelle möglich (mögliche Programmiersprachen sind z. B. C++, C#).

    Die in EbsUser.h definierte Schnittstelle wird ständig weiterentwickelt bzw. erweitert. Die Änderungen sind in EbsUser.h beschrieben. Im Oktober 2021 wurde die Version 10 dieser Schnittstelle implementiert. Diese Version 10 (im Namespace „v10", nur für C++ verfügbar) beinhaltet eine CallBack-Funktion zur Berechnung von Stoffeigenschaften. Dies macht das Linken zu wdt.lib und mixture.lib obsolet.

    Das Interface IFluidAnalysis hat zwei Methoden „GetAllFractions“ und „SetAllFractions“ mit denen alle Substanzen gleichzeitig gelesen bzw. geschrieben werden können.

    Interface IComp: Die Eigenschaften „Shape:long“ und read-only „ShapeCount:long“ dienen zum Lesen und Setzen der aktuellen Darstellungsform bzw. zum Lesen der Anzahl unterschiedlicher Darstellungsformen.

    Die CoClasses ApplicationBuilder und DllBuilder ermöglichen es, eine EbsOpen-Instanz (Dll-Inproc oder Exe-OutofProcess) schrittweise zu spezifizieren und durch den Aufruf von „Finalize“ zu kreieren. Hierbei können zusätzlich Lizenzoptionen spezifiziert werden.

    Wie die CoClasses unterstützt die Methode „EbsOpen.Factory .Create(InitParams init_params)“ ebenfalls die zusätzlichen Lizenzoptionen. Hierzu verwenden Sie bitte in der Struktur „InitParams“ das Feld „builder_params“ (vom Typ „BuilderParams“).

    Mit der Methode „RunExtendedCommand“ kann auf Anwendungs- bzw. auf Modellebene ein benutzerdefinierter Toolbar-Befehl ausgeführt werden.

    Die Werte von Ergebniswerte/-felder/-scharen und -matrizen stammen ab Release 16 immer aus dem aktiven Profil, d.h. es findet keine Suche in den Elternprofilen statt (mit „Fix…" an spezielle Profile gebundene Werte sind hiervon natürlich nicht betroffen).

    Hier klicken >> xui_dll_macro.ebs << um das Beispiel in Ebsilon zu öffnen.

    Hier klicken>> xui_v10_dll_macro.ebs << um das Beispiel in Ebsilon zu öffnen (nutzt Version 10, die seit Release 15 Patch 5 verfügbar ist).