Fast and furious! 11.1.14 is ready. Forget 11.1.13 -- this is better. :) The two things I've been working on are (a) a new way to get detailed information out of Jmol and (b) rotating/translation/inversion of selected atoms.
(a) The idea here is that we might want to ask questions like: "Did the user select a tetrahedral carbon?" "How many bonds are there to C5?" "what is the average distance from this set of atoms to that set of atoms?" "As I move this model relative to this other model, how do the distances change?" These sorts of questions can now be addressed very easily. The notation is {atom expression}.atomProperty. So we have: "Did the user select a tetrahedral carbon?" if {selected and carbon and connected(4)};echo Yes;else;echo No;endif and "How many bonds are there to C5?" x = {c5}.bondcount message The number of bonds to C5 is %{x}. or, even easier: message The number of bonds to C5 is %{{c5}.bondcount} and "what is the average distance from this set of atoms to that set of atoms?" define chainA *:A define chainB *:B message The average distance from chain A to chain B is %{{chainA}.distance{chainB}}. and "As I move this model relative to this other model, how do the distances change?" set echo top left echo The O5-C12 distance is %{{O5}.distance{C12}} Now, if you move atom O5 relative to C12 (maybe they are in different molecules), then the echo text will change automatically. The same goes for measurements. Just set dynamicMeasurements to indicate that they should be recalculated when the screen is repainted. I have the feeling that this now allows for quite an interesting set of possibilities for using Jmol in new ways. A demo of these features is now at http://www.stolaf.edu/academics/chemapps/jmol/docs/examples-11/new.htm Bob 11.1.14: BRACES NOT PARENTHESES BIG change is that now we use {} in SET and %{} for designating atom expressions. This was necessary in order to align SET and %{} with IF, where () are also allowed. set a {oxygen}.temperature message %{{carbon}.x} if {O22}.bondCount > 2;goto ... .DISTANCE ATOM PROPERTY FOR SET, IF, and %{} d = {oxygen and * /1}.distance{oxygen and * /2} set echo top left echo the O-O distance is %{{oxygen and * /1}.distance{oxygen and * /2}} message %{{atomno=3}.distance{atomno=4}} DYNAMIC MEASUREMENTS Now that we can move atoms so easily, we don't want those measurements getting stale. set dynamicMeasurements allows measurements to be recalculated on the fly. 11.1.13: DATA "coord set" invertSelected POINT .... invertSelected PLANE .... invertSelected HKL ...... rotateSelected .... rotateSelected spin .... full state support for "tainting" atom positions using translateSelected or invertSelected set allowRotateSelected # then use ALT-LEFT for rotating just the selected molecule this all definitely needs some work and discussion in terms of user interface via mouse ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Jmol-users mailing list Jmol-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-users