Jmol developers -- 11.1.15 is a must-see.
Well, that was quite the week. I really didn't expect to do all this
molecular math stuff, but once I got started, and the compiler/eval
connection became tighter and tighter, I kept seeing the next solution
only "moments" --ahem, read "hours" away--and it all fell into place.
I'm actually quite happy to see how the scripting language has evolved.
I trust others are of the same opinion, but I guess I'm working too
fast. There's been no feedback about this at all. It is immensely more
powerful now than it was in "Chime" mode. We have:
-- user definable variables
-- eight data types (boolean, integer, real, string, point, plane,
atomset, and bondset)
-- standard math manipulations +-*/% AND/OR/NOT/XOR, and parentheses,
including some very powerful set/point/plane combinations.
-- several powerful functions including load(), data(), connected(),
substructure(), within(), distance() [to points and planes], angle(),
.distance() [average], .label(), .find(), .bonds, .atoms, .ident,
.lines, .size, .length, .xyz, and all atom properties (.x, .y, .z,
.temperature, .phi, .psi, .model, .file, .molecule, .site,
.surfaceDistance, .symop, and several more).
-- FULL integration now into SELECT --- you can use the EXACT same
syntax for SELECT, IF, and SET. I just put the finishing touches on this
out today, and it is WONDERFUL!
-- automatic construction and writing of XYZ, MOL, and PDB data. I still
can't believe how easy that is.
-- new atomset and bondset descriptors ({m:n q p:r}) and [{m:n q p:r}]
usable anywhere an atom expression might be used.
-- new SELECT BONDS option.
-- smooth integration into all commands using @x, as in:
x = {1.0 2.0 1.0}
y = {1.0 1.0 0.0}
draw line1 @x @y
p = {1 1 1 0}
isosurface plane @p
The only caveat is that you cannot use comma as "OR" within braces:
{_C,_H} is not allowed because it is too similar to {0,1,0}, a
coordinate, which can more simply be indicated without the commas
anyway: {0 1 0}. So I'm recommending the only use of commas to be
between parameters:
x = within(5.0,{carbon}[3] or {oxygen}[2])
But it's all fully backward-compatible with 11.0 and 10.2. You can still say
select within(5.0, carbon, oxygen) # YUCK
if you really must. It's just that I will never recommend this. Instead,
I recommend:
select within(5.0, {carbon or oxygen})
Once you get used to this {} stuff, you will like it, because it's the
same with variables:
x = within(5.0, {carbon or oxygen})
So I'm done for a while so as a attend to some other tasks that I was
supposed to do two weeks ago.
Enjoy!
Bob
-------------------------------------------------------------------------
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-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers