Startseite Beispiele Screenshots Benutzerhandbuch Bluesky-Logo YouTube ☰
OghmaNano Simulation von organischen/Perowskit-Solarzellen, OFETs und OLEDs DOWNLOAD Quick Start guide

Einführung in die Skriptprogrammierung

1. Einrichten Ihrer Skriptumgebung

Die Verwendung von Skripten bietet eine leistungsfähigere Möglichkeit, mit OghmaNano zu interagieren. Anstatt die grafische Benutzeroberfläche zu verwenden, können Sie Ihre bevorzugte Programmiersprache nutzen, um mit OghmaNano zu arbeiten. Dies gibt Ihnen die Möglichkeit, Simulationen auf eine viel leistungsfähigere Weise zu steuern, als dies allein mit der grafischen Benutzeroberfläche möglich wäre. Im Folgenden gebe ich Beispiele für die Verwendung von MATLAB und Python zur Steuerung von OghmaNano, aber Sie können jede beliebige Sprache verwenden, die einen JSON-Reader/Writer unterstützt. Perl und Java sind zwei Sprachen, die mir dabei einfallen.

Bevor Sie mit der Erstellung von Skripten für OghmaNano beginnen, müssen Sie dem System mitteilen, wo OghmaNano installiert ist. Standardmäßig wird OghmaNano unter C:\Program files x86\OghmaNano installiert. In diesem Verzeichnis finden Sie zwei ausführbare Dateien: oghma.exe, die die grafische Benutzeroberfläche darstellt, und eine zweite Datei, oghma_core.exe. Sie können oghma_core.exe über die Befehlszeile ausführen, ohne oghma.exe zu verwenden. Navigieren Sie dazu einfach zu einem Verzeichnis, das einen Ordner namens sim.oghma enthält, und rufen Sie oghma_core.exe auf. Dies kann über die Windows-Befehlszeile, MATLAB, Python oder eine andere Skriptsprache erfolgen. Bevor Sie dies jedoch unter Windows tun können, müssen Sie C:\Program files x86\OghmaNano zu Ihrem Windows-Pfad hinzufügen, damit Windows weiß, wo OghmaNano installiert ist. Ein Beispiel, wie dies in einer aktuellen Windows-Version durchgeführt werden kann, finden Sie unter dem folgenden Link: https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14)

Bei jeder neuen Windows-Version scheinen die Konfigurationsoptionen an andere Stellen verschoben zu werden, daher müssen Sie möglicherweise eine Anleitung für Ihre Windows-Version finden.

2. Weitere Tipps zum Schreiben von Skripten

OghmaNano JSON Explorer showing the simulation data structure as a tree of JSON objects
Der JSON-Explorer stellt die sim.json-Datenstruktur als navigierbaren Baum dar.

Stellen Sie sich die grafische Benutzeroberfläche (GUI) als eine strukturierte JSON-Anzeige vor.

Ein nützliches mentales Modell beim Erstellen von Skripten für OghmaNano ist es, die gesamte Benutzeroberfläche als eine strukturierte Ansicht und ein Bearbeitungswerkzeug für die zugrunde liegende sim.json-Datei zu betrachten. Jedes Widget, jeder Schieberegler, jede Tabelle und jedes Dialogfeld liest letztendlich aus dieser Datei und schreibt in sie. Es gibt keinen separaten „GUI-Zustand“ – die JSON-Datei ist der Zustand. Im Automatisierungsbereich ermöglicht der JSON-Explorer (Abbildung ??) das direkte Durchsuchen der sim.json-Datei als hierarchische Baumstruktur. Dies ist oft der schnellste Weg, um zu verstehen, wo ein Parameter in der JSON-Datei „gespeichert“ ist, und um zu überprüfen, ob eine GUI-Aktion in das erwartete Feld schreibt.

Objekte durch Kopieren und Einfügen untersuchen

Eine weitere nützliche Technik besteht darin, die Funktionsweise von Kopieren und Einfügen in der gesamten grafischen Benutzeroberfläche zu nutzen. Wenn Sie ein Objekt kopieren – beispielsweise durch einen Rechtsklick und das Kopieren einer Ebene im Ebeneneditor oder durch das Kopieren eines ausgewählten Objekts in der 3D-Ansicht – kann OghmaNano die zugrunde liegende JSON-Struktur, die für die Generierung dieses Objekts verantwortlich ist, direkt in die Zwischenablage einfügen.

Wenn Sie den Inhalt der Zwischenablage in einen einfachen Texteditor (Notepad, Notepad++, VS Code usw.) einfügen, können Sie den genauen JSON-Block untersuchen, der zur Definition des jeweiligen Objekts oder der jeweiligen Tabelleneintrag verwendet wird. Dies ermöglicht eine direkte und eindeutige Ansicht, wie das Objekt intern dargestellt wird, und ist oft der schnellste Weg, um die relevanten Schlüssel für die Skripterstellung zu identifizieren.

Viele Kontextmenüs bieten auch Optionen wie „JSON kopieren“, „JSON-Pfad kopieren“ oder „Skriptgesteuerten Pfad kopieren“ an. Diese Befehle zeigen den genauen Speicherort eines Objekts innerhalb der JSON-Hierarchie an, wodurch es viel einfacher wird, den entsprechenden Eintrag in Skripten zu finden und zu bearbeiten.

Wenn Sie wirklich nicht weiterkommen: Verwenden Sie ein Vergleichsprogramm.

Wenn Sie sich nicht sicher sind, wie ein bestimmtes GUI-Steuerelement in der sim.json-Datei abgebildet wird, ist eine einfache und effektive Methode zur Fehlersuche die Verwendung eines Tools zum Dateivergleich (Diff-Tool).

  1. Erstellen Sie eine Sicherheitskopie Ihrer Simulationsdatei, z. B. sim.json → sim.back.
  2. Ändern Sie einen einzelnen Parameter in der grafischen Benutzeroberfläche.
  3. Vergleichen Sie die geänderte Datei sim.json mit Ihrem Backup mithilfe eines Vergleichsprogramms wie KDiff3.
  4. Die Ausgabe der Vergleichsfunktion zeigt Ihnen genau, welche Zeile (oder welcher Block) in der JSON-Datei geändert wurde, und gibt Aufschluss darüber, wie dieses GUI-Element intern dargestellt wird.

Dies ist oft der schnellste Weg, um ein UI-Steuerelement einem bestimmten JSON-Feld zuzuordnen, insbesondere bei umfangreichen Parameterstrukturen.

Verwenden von Objekt-IDs, um Einträge in sim.json zu finden.

OghmaNano object editor showing the object ID displayed at the bottom of the window
Der Objekt-Editor zeigt die eindeutige Objekt-ID an, die am unteren Rand des Fensters angezeigt wird. Dieses Dialogfeld wurde geöffnet, indem man mit der rechten Maustaste auf den obersten Kontakt des Geräts geklickt und dann „Objekt-Header“ ausgewählt hat.

Die meisten strukturierten Objekte in OghmaNano – wie beispielsweise Ebenen, Formen, Parameterscans und andere hierarchische Elemente – werden mit einer eindeutigen Kennung (ID) versehen, in der Regel einer zufälligen, hexadezimalen Zeichenfolge von etwa 16 Zeichen.

Die Objekt-ID wird häufig direkt in der grafischen Benutzeroberfläche angezeigt. Im Beispiel in Abbildung ?? wird die ID beispielsweise in der unteren linken Ecke des Objekteditorfensters dargestellt. Derselbe Identifikator findet sich auch im entsprechenden Eintrag in der Datei sim.json.

Diese IDs sind äußerst nützlich, wenn man sich in großen oder komplex verschachtelten JSON-Strukturen bewegt. Indem man in sim.json nach der ID-Zeichenfolge sucht, kann man sofort das genaue Objekt finden, das einem bestimmten GUI-Element zugeordnet ist, selbst wenn die umgebende Hierarchie komplex ist.