Anleitungen für das Scripting in Molecular Workbench
Molecular Workbench bietet zahlreiche Möglichkeiten, mit Hilfe von Scripting eine Simulation zu beeinflussen. Anhand von mehreren Beispielen soll gezeigt werden, wie man von den Elementen, wie zum Beispiel Knöpfen und Schieberegler, die ja außerhalb der Simulationsfenster liegen, auf die Simulationsfenster zugreifen kann.
Beispiel: States of Matter
Die Simulation "States of Matter" wird in Molecular Workbench mitgeliefert. Sie ist zu finden unter "Chemistry"- "States of matter" und dort die zweite Datei unter dem gleichen Namen.
Um diese Simulation zu bedienen gibt es mehrere Bedienelemente unter dem Simulationsfenster.
Um die Scripte richtig zu verstehen, muss man auch wissen, welche Dateien zu der Simulation gehören:
Die Datei states of matter.cml
ist die Seite, die im wesentlichen eine HTML-Seite ist, die die Oberfläche der Arbeitsfläche darstellt. Das erkennt man an der Endung cml
. Die Datei states of matter$0.mml
ist aufgrund der Endung mml
als eine Datei zu erkennen, die den Inhalt des Modell-Containers definiert. Der Bestandteil $0
zeigt an, dass es die Datei ist, die in dem ersten Modell-Container bei Start geladen wird. Standardmäßig enthält der Name immer den Namen der cml
-Datei. Die anderen Dateien mit der Endung mml
sind ebenfalls Dateien für den Modell-Container, also andere Simulationsdateien, die aber erst über die Bedienelemente geladen werden.
Der Knöpfe werden mit mit ersten Modell-Container verbunden, indem in den Einstellungen des Knopfes "Customize button" unter "Select a model" den entsprechenden Modell-Container auswählt. In diesem Fall ist das <Molecular Workbench> states of mater$0.mml
.
Der Bestandteil <Molecular Workbench>
zeigt an, um welche Art von Modell-Container es sich handelt, denn Molecular Workbench bietet ja verschiedene Arten an. Wie schon erwähnt steht $0
für den ersten, wobei die Container verschiedener Art immer gemeinsam nummeriert werden.
Im Feld darunter wird angegeben, welche Art von Aktion durchgeführt werden soll. Das kann ein allgemeines Script (dann wählt man Execute MW script
) sein oder eine spezielle Aktivitäten, die zum Beispiel Eigenschaften der Elemente im Modell-Container verändern kann.
Der eigentliche Befehl, der im Beispiel ausgeführt wird, steht unten im Bereich "Enter the script to be run when clicked". Bei einer Aktion zur Änderung von Eigenschaften, steht dann dort nichts.
Einfache Scripting-Befehle sind:
-
run
um die Simulation zu starten -
stop
um die Simulation zu anzuhalten -
reset silently
um ohne Nachfrage die Simulation zu anzuhalten und zurückzusetzen -
load sm_liq.mml
um die Dateism_liq.mml
zu laden (siehe Dateien der Simulation!)
Die Einstellungen zu dem Knopf (im Rahmen) sollten selbsterklärend sein.
Der Knopf "Start compression" enthält zwei Zeilen:
-
set obstacle[0].density 0.1;
-
set obstacle[0].hy 0.2;
Den Namen findet man beim gezeichneten Objekt, indem man rechts draufklickt und im Kontext-Menü "Properties" auswählt. Dort steht der Name im Feld "Index". "obstacle" heißt Hindernis. In dieser Zeichnung also der Stempel, der auf die Teilchen drückt. Außerdem sind dort spezifische Einstellungen zu dem Hindernis.
Nach der Ausführung des Skriptes ändern sich zwei der Werte.
Geändert hat sich die "Dichte" und der Wert bei "Vertical Force". Beide haben jeweils den Wert, den sie über das Skript zugewiesen bekommen haben.
Damit ist klar, dass die Skripte folgendes bedeuten:
-
set
legt den Wert neu fest. -
obstacle[0]
bezeichnet das Objekt, dass verändert werden soll -
.density
gibt den Wert an, der von dem Objekt verändert werden soll. -
0.2
gibt den neuen Wert an -
;
alles wird durch ein Semikolon abgeschlossen
Weitere Scripting-Befehl
Nähere Informationen zu den Optionen dieser Befehle wäre hier zu umfangreich. Nutzen Sie die Adresse "http://mw2.concord.org/public/tutorial/mwscripts.cml" innerhalb von MW, um auf eine Siete zu kommen, über die man zu den Seiten kommt, die die Nutzung der Scriptung-Befehl ausführlich erklären.
- Verändung der Größe des Modell-Containers ...
set width [value]
undset height [value]
- Auswahl von Objekten nutzt man den
Select
Befehl. - Verschieben aller gewählten Objekte benutzt man den Befehl
move