Scripting mit Jmol: Unterschied zwischen den Versionen

Aus Chemie digital
Wechseln zu: Navigation, Suche
(Änderung 4671 von B.Lachner (Diskussion) rückgängig gemacht.)
(Darstellung der Partialladungen)
Zeile 159: Zeile 159:
  
 
[[Kategorie:Jmol]] [[Kategorie:Hilfe]]
 
[[Kategorie:Jmol]] [[Kategorie:Hilfe]]
 
=== Darstellung der Partialladungen ===
 
Hat man eine Datei hier hochgeladen, so kann man zu jeder beliebigen Datei die Partialladungen anzeigen lassen, indem die Oberfläche (speziell der sogenannte VanDerWaals-Radius - grob dem Kalottenmodell entsprechend) eingefärbt werden, wobei
 
 
<center>
 
<table><tr><td>
 
<center>
 
<jmol>
 
<jmolApplet><script>set spin X 10; spin on</script>
 
<name>ethane_s1</name><color>palegreen</color><size>250</size>
 
<uploadedFileContents>benzol.cml</uploadedFileContents>
 
</jmolApplet>
 
<jmolButton><script>spin on</script><name>ethen_s1</name><text>Start spinning</text></jmolButton>
 
<jmolButton><script>spin off</script><name>ethane_s1</name><text>Stop spinning</text></jmolButton>
 
</jmol></center>
 
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
 
<center>
 
<jmol><jmolApplet><script>set spin X 10; spin on</script>
 
<name>ethane_e1</name><color>skyblue</color><size>250</size>
 
<uploadedFileContents>benzol.cml</uploadedFileContents>
 
</jmolApplet>
 
<jmolButton><script>spin on</script><name>ethane_e1</name><text>Start spinning</text></jmolButton>
 
<jmolButton><script>spin off</script><name>ethane_e1</name><text>Stop spinning</text></jmolButton>
 
</jmol></center>
 
</td></tr></table>
 
</center>
 

Version vom 23. Juli 2019, 08:27 Uhr

Die Informationen gelten nicht nur für Jmol, das auf dem Heimcomputer laufende Java-Programm, sondern auch für die Wiki-Extension Jmol und JSmol. Speziell JSmol ist für die Zukunft interessant, das es auch auf Mobil-Geräten genutzt werden kann, was beim Java-basierten Jmol nicht der Fall ist.

Inhaltsverzeichnis

Scripting hier im Wiki mit der Wiki-Exptension

Scripting ermöglicht hier im Wiki den Eingriff in ein mit JSmol eingebundenes Bild (allgemeine Infos dazu: Jmol-Wiki-Extension). Man kann verschiedene Bedienelemente verwenden, wie Knöpfe, AuswahlKästchen (CheckBoxen) und Optionsknöpfe (RadioButton).

In speziellen Script-Tags werden dann die Befehle eingegeben, wie man sie auch in Jmol direkt verwenden kann. Mehrere Befehle werden jeweils durch ein Semikolon getrennt.


Hier wird die Datei Benzol.cml angezeigt. Zusätzlich wird beim Laden ein kleines Script ausgeführt, dass festlegt, wie das Molekül dargestellt wird.

<jmol>
  <jmolApplet>
   <size>500</size>
   <script>spacefill on; spacefill 20%; wireframe 0.1</script>

<uploadedFileContents>Benzol.cml</uploadedFileContents> </jmolApplet> </jmol>


Bedienelemente werden mit dem gleichen Tag eingeschlossen, wie beim Laden und Anzeigen eines Bildes. Bei einem Bild pro Seite wird dieses damit angesprochen. Hier geht es um ein Kreuzchen, dass man setzen oder entfernen kann, um die automatische Drehung zu starten oder zu stoppen. Es sind zwei getrennte, sehr kleine Skripte.

<jmol>
   <jmolCheckbox>
    <scriptWhenChecked>spin on</scriptWhenChecked>
    <scriptWhenUnchecked>spin off</scriptWhenUnchecked>


    <text>Spin an/aus</text>
   </jmolCheckbox>
 </jmol>

Das Scripting-Fenster in Jmol

Wer sich nicht im Wiki anmelden will kann das Scripting auch nutzen, um in der Java-Software Jmol z.B. Orbitale darzustellen. Weitere Gründe ist die schnellere Möglichkeit etwas auszuprobieren. Im Wiki müsste man immer die Seite abspeichern was immer etwas Zeit kostet. Außerdem kann es bei einem schwerwiegende Schreibfehler passieren, dass die vorher eingetippten Befehle nicht abgespeichert werden und man alles neu eintippten muss. Dagegen kann man in Jmol alles ausprobieren und bekommt direkt das Ergebnis ... oder eben den Misserfolg.

Scripte lassen sich in Jmol auf zwei Weisen ausführen:

  1. Über die Scriptkonsole kann man nach und nach die Befehle eingeben und deren Wirkung sehen. Praktisch zum Ausprobieren!
  2. Mit dem Scripteditor kann man Scripte, die aus mehreren Befehle bestehen, eingeben und auch später ausführen. Wurde noch nicht getestet!


Aufruf der Script-Konsole Script-Konsole in einem Extra-Fenster
JmolScript2.png      JmolScript3.png

Konkrete Beispiele

Seiten mit Zeichnungen im Wiki

Seiten, die Jmol/JSmol-Zeichnungen eingebunden haben, sollen mit der [[Kategorie:Jmol]] versehen sein. Anhand der Beispiele können Sie sich orientieren und daraus lernen. Eventuell finden Sie aber auch zu speziellen Themen weitere Zeichnungen.

Hochgeladene Dateien mit Molekülen findet man in der [[Kategorie:CML-Datei]]. Die Dateien können belibig oft verwendet werden.

LCAOCartoon nutzen

LCAOCartoon ist eine einfache Möglichkeit zur Darstellung von Atomorbitalen. Im Gegensatz zu den meist komplizierten Molekül-Orbitalen kann man hier einfach und schnell in ein Bild Atomorbitale einblenden und so - für Schüler ausreichend - mehrere Atomorbitale einblenden, um durch Überlappung das Zustandekommen von Bindungen erläutern zu können. Man braucht kein spezielles Format mit zusätzlichen Informationen.

Die Einblendung der Orbitale wird dabei vom Benutzer/Programmierer gesteuert und man bei jedem Atom jedes Orbital anzeigen lassen, auch wenn es keinen Sinn macht. Ein sp³-Hybrid-Orbital bei einem H-Atom anzeigen ... kein Problem!

Auswahl der Atome

Wie auch sonst in Jmol muss man angeben, welche Atom bzw. welcher Atomkern, als Mittelpunkt für das Orbital genutzt werden soll.

Es gibt mehrere Möglichkeiten Atome auszuwählen, um bei ihnen ein Atomorbital anzeigen zu lassen.

  • select (atomno=1);
... Auswahl des Atoms Nummer 1. Die Nummer eines Atoms bekommt man zum Beispiel, wenn man die Maus über ein Atom hat, nach kurzer Zeit angezeigt.
  • select (atomno=1), (atomno=2);
... mehrere Atome werden durch Komma getrennt angegeben. So kann man das gleiche Orbital bei mehreren Atomen auf einmal anzeigen lassen. Man kann die gleichen Orbitale auch nacheinander mit getrennten "Selektionen" anzeigen lassen.
  • select all;
... Auswahl aller Atome.
  • select (hydrogen)
... Auswahl aller Wasserstoff-Atome. Oder eben den englischen Namen eines anderen Elementes.

Das Semikolon am Ende ist nur dann notwendig, wenn im gleichen Skript danach noch ein Befehl angehängt wird. Das wird nach einer Auswahl aber wohl meist der Fall sein.

ACHTUNG:

  • select (atomno=1); select (atomno=2);
... hier ist für den folgenden Befehl nur das Atom mit der Nr. 2 ausgewählt!

Darstellung verschiedene Orbitale

Für die Darstellung der verschiedenen Orbitale wird zunächst der folgende Befehl benötigt:

  • lcaocartoon create <Orbital>

Die wichtigsten Orbitale sind dann:

  • s
  • p ... oder einzeln:px,py,pz
  • sp3 ... oder einzeln: sp3a, sp3b, sp3c, sp3d
  • sp2 ... oder einzeln: sp2a, sp2b, sp2c
  • sp ... oder einzeln: spa, spb

Hinter dem Namen steht bei p und bei den Hybridorbitalen ein weiterer Buchstabe. Dadurch wird aus den verschiedenen Orbitalen der gleichen Art ausgewählt. Welche davon man jetzt braucht, muss man ausprobieren.

Will man z.B. alle sp³-orbitale anzeigen lassen, so braucht man den Befehl:

  • lcaocartoon create sp3

Um nur eines der sp³-orbitale anzeigen lassen, so braucht man z.B. den Befehl:

  • lcaocartoon create sp3b

Des weiteren gibt es die Möglichkeit einzelne Elektronen oder freie Elektronenpaare darzustellen. Dabei gibt es zwei Möglichkeiten der Darstellung:

  1. wie ein Orbital als Elektronenwolke
  2. als Punktepaar oder einzelner Punkt bei einem Radikal

Dazu braucht man die folgenden Befehle:

  • lcaocartoon create lp ... für ein einzelnes freie Elektronenpaar wie bei Stickstoff in Form einer Elektronenwolke.
  • lcaocartoon create lpa und lcaocartoon create lpa ... für die zwei freien Elektronenpaare wie beim Sauerstoff jeweils in Form einer Elektronenwolke.
  • lcaocartoon lonepair "lp" ... um wie beim Stickstoff eine freies Elektronenpaar in Form von Punkten darzustellen.
  • lcaocartoon lonepair "lpa" und lcaocartoon lonepair "lpb" ... um wie beim Sauerstoff die zwei freien Elektronenpaare jeweils als zwei Punkte darzustellen.
  • Elektronenpaare in durchsichtiger Elektronenwolke
    lcaocartoon radical "lp" ... ein einzelnes Elektron bei einem Radikal darzustellen. Ebenso "lpa" und "lpb".

Man kann diese beiden Darstellungsarten auch kombinieren, indem man die Wolke durchsichtig darstellt und das Elektronenpaar undurchsichtig.

  • lcaocartoon opaque; lcaocartoon lonepair "lpa" "lpb"; lcaocartoon translucent; lcaocartoon create lpa; lcaocartoon create lpb

Informationen zur Veränderung der Transparenz und weiteren Einstellungen gibt es in einem späteren Abschnitt.

Neben den in der Schule am meisten genutzten Orbitale sind auch auch folgende Hybrid-Orbitale darstellbar:

  • Die sp³d Orbitale, einzeln als sp3da, ... bis sp3de ansprechbar.
  • Die sp³d² Orbitale, einzeln als sp3d2a, ... bis sp3d2f ansprechbar.

Änderung des Aussehens

Zur Veränderung des Aussehens stehen ein paar Befehle zur Auswahl. Dabei muss man beachten, dass eine eingestellter Wert erhalten bleibt und beim zeichnen des nächsten Orbitals nicht auf dem Standard-Wert zurückgesetzt wird. Deshalb kombiniert man am besten jede Anzeige eines Orbitals mit vorangestellten Befehlen zur Festlegung des Aussehens.

Transparenz:

  • LcaoCartoon Opaque
.. lässt die als nächstes dargestellten Orbitale unduchsichtig darstellen.
  • LcaoCartoon Translucent
.. lässt das Orbital leicht durchsichtig erscheinen. Es ist aber immer noch zu sehen.
  • LcaoCartoon Translucent <Zahl>
.. ermöglicht einzustellen, wie sehr durchsichtig ein Objekt ist. O steht dabei für Undurchsichtig (wie Opaque), 0.3 ist dann ein wenig transparent usw. Maixmal möglich ist 1, wie bei Translucent.


Farbe:

  • LcaoCartoon color <Farbe>
.. so kann man die Farbe für das nächste Orbital auswählen. Neben den englischen Namen (orange, yellow, ...) kann man auch einen RGB-Farbcode verwenden ([255, 165, 0]).
  • LcaoCartoon color <Farbe1> <Farbe2>
.. bei p-Orbitalen kann man zwei Farben angeben, für die zwei Teile oben und unten. Wird nur eine Farbe angegeben, werden beide Teile gleich eingefärbt.

Farbe und Transparenz lassen sich in einem festlegen, wie in diesem Beispiel:

  • LcaoCartoon color tanslucent orange


Skalierung:

  • LcaoCartoon scale <Zahl>
.. dient der Anpassung der Größe des als nächstes gezeichneten Orbitals.
Tipp: Die p-Orbitale überlagern sich normalerweise nicht. Um das Zustandekommen einer π-Bindung zu verdeutlichen müssen die p-Orbitale vergrößert werden. Ab dem Faktor 1.7 bis 1.9 sollte das der Fall sein. Am besten probiert man es bei jedem Molekül erst einmal aus!


Einige Beispiele für Befehle

  • select (atomno=1); lcaocartoon color blue translucent 0.1; lcaocartoon scale 1.6; lcaocartoon create pz
.. hier wird eines der p-Orbitale bei Atom Nr. 1 in blau dargestellt, um den Faktor 1.6 vergrößert und nur wenig durchsichtig.
  • select (atomno=3) , (atomno=4); lcaocartoon color yellow translucent 0.2; lcaocartoon scale 1; lcaocartoon create s
.. bei den Atomen Nr. 3 und 4 werden gelbe, nur ein wenig durchsichtige s-Orbitale dargestellt.
  • select (atomno=3); lcaocartoon scale 1; lcaocartoon color yellow translucent 0.2; lcaocartoon scale 1; lcaocartoon create s; select (atomno=1); lcaocartoon color orange translucent 0.2; lcaocartoon create sp2b
.. hier wird eine σ-Bindung dargestellt, indem bei den benachbarten Atomen (hier Nr. 3 und Nr. 1) ein s bzw. eines der sp²-orbitale dargestellt wird.

Löschen

Bei der Verwendung von Knöpfen muss man aufpassen, dass die "alte" Zeichnung nicht die "neue" stört und so ist es am einfachsten, dass man die alten Darstellungen löscht. Das bezieht sich aber nicht auf das Molekül!

Will man alle Ergänzungen löschen, sollte man vorher alle Atome auswählen. Sonst kann es passieren, dass beim vorherigen Script-Befehl ein einzelnes Atom ausgewählt wurde und ein Löschbefehl sich nur dann auf Orbitale bei diesem Atom beziehen:

  • LcaoCartoon select all; LcaoCartoon delete
... dieser Befehl löscht alle Orbitale, die über den CREATE Befehl gezeichnet wurden, nicht aber die einzelnen, als Punkte gezeichneten, Elektronen.
  • lcaocartoon lonepair delete
... zum Löschen der einzelnen, als Punkte gezeichneten, Elektronen. Auch bei Radikalen.