From: Robert H. <ha...@st...> - 2010-07-24 21:06:54
|
Thank you, Nico, for releasing Jmol 12.0.RC27. It's finally time to call this a version! This last update adds some very powerful capability to Jmol that various people have suggested over the years. It feels very much now like we have a fully functional command language -- almost like bringing JavaScript right into Jmol: version=12.0.RC27 new feature: prompt(label,data,asButtons) ----------------------------------------------------- Bring up a customizable pop-up box. x = prompt("The file loaded properly.") # just shows an OK box x = prompt("Enter a script command","") # returns user input or "null" if (x != "null")script inline @x x = prompt("Do you want to continue?","yes|no|cancel", true) # returns "yes" "no" or "cancel" x = prompt("testing",["yes","no","cancel"]) # returns 1, 2, or 3 see http://chemapps.stolaf.edu/jmol/docs/index.htm#prompt new feature: associative arrays --------------------------------------- b = {"test" : 34, "test2" : 45} b["test"] = 35 b["test3"] =[2, 3, 4, 5] print b["test"] 35 show b b = { "test3":[2, 3, 4, 5],"test2":45,"test":35 } b -= "test3" show b b = { "test2":45,"test":35 } new feature: try/catch ---------------------------- And, with that, the opportunity to catch file load errors BEFORE they do the ZAP... load quartz.cif refresh while(true) { try{ load "adfkjd" # will be caught } catch(e) { prompt @e break # from WHILE } prompt "The file was loaded successfully. break; } # quartz still loaded. see http://chemapps.stolaf.edu/jmol/docs/index.htm#try new feature: SWITCH/CASE ----------------------------------- -- more like JavaScript than Java -- like JavaScript, doesn't need constants -- like JavaScript, evaluations can be made in the cases -- really just a simpler form of IF/ELSEIF/ELSE -- expressions are evaluated only as necessary from the top down -- DEFAULT may appear along with any of the CASE statements switch(prompt("What would you like to see?", ["Spacefill","Wireframe","Ball&Stick"])) { case 1: spacefill only break; case 2: wireframe only break; case 3: wireframe only;wireframe reset;spacefill reset break; } see http://chemapps.stolaf.edu/jmol/docs/index.htm#switch new feature: fux, fuy, fuz, fuxyz, and set fractionalRelative ------------------------------------------------------------------------ fux, fuy, fuz are the fractional coordinates based on the current unit cell. set frationalRelative makes {1/1 1/2 1/1} and cell=555 and cell ={1 1 1} all relative to the current unit cell. -- Robert M. Hanson Professor of Chemistry St. Olaf College 1520 St. Olaf Ave. Northfield, MN 55057 http://www.stolaf.edu/people/hansonr phone: 507-786-3107 If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 |