Happy to address that. @ is tricky because it has multiple uses:

1. Original use: "define"



*$ @molecule1  molecule=1*


*$ select molecule1*

2. Shortcut to {atomno=n}

*$ @3.color = "red"*
*$ draw @1 @3*


3. Math insertion into a Jmol command:


*$ draw ID @{"line"+i} ....*

4. Explicit reference to a math variable in a select command.


*$ x = {model=1}*

*$ select @x    // "select x" also works here*


*$ ch = "b"*

*$ select chain=@ch   //  "select chain=ch" would not work here*


5. Indirect math reference




*$ x = "y"$ y = 33$ print @x*



*33*
For a few more, see [
http://chemapps.stolaf.edu/jmol/docs/index.htm?&fullmanual=1&ver=14.6&#jmolmathindirectreferencinganduseof@
]

So what you did there:

function() {....} {



  return @x
}

is not good practice. It is case #5, and is working only because whatever x
is, there is no variable by the name of what its value is. "return" is a
math/flow command and so does not use "@" for its parameters. What comes
after "return" is a math expression, not a Jmol command.

That help?

Bob
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to