Marco, you haven't defined axisRotation then. Don't worry about it. That was
just an example.
By default, the z axis points toward you; the x axis is horizontal; the y
axis is vertical.
What are the coordinates of:
A) the point you want to be directly between you and the metal atom, which I
will call M?
B) the point you want to be to the right?
Then you would use this:
Var q = quaternion(M, A, B)
Var qCurrent = quaternion(script("show rotation"))
rotate @{(!q) * (!qCurrent)}
rotate x 90
That says, "Create a quaternion reference frame based on x=M-A and y=M-B.
Also get the current rotation frame. Now undo both of these rotations (first
the current rotation, then the desired reference frame). At this point, m-A
will be pointing to the right, and M-B will be pointing vertically in the
plane of the screen. Now rotate M-B to be pointing toward the observer."
for example,
load SF6.smol
var M = {_S}
var A = {atomno=2}
var B = {atomno=3}
Var q = quaternion(M, A, B)
Var qCurrent = quaternion(script("show rotation"))
rotate @{(!q) * (!qCurrent)}
rotate x 90
Bob
On Mon, Oct 18, 2010 at 10:48 AM, Marco Zimmer-De Iuliis <
[email protected]> wrote:
> Thanks for your response.
>
> I tried what you suggested but the last line "rotateSelected molecular
> @axisRotation @theta" gives me
>
> "script ERROR: invalid argument
> ----
> rotateSelected molecular >> <<"
>
> I guess I was not very clear in my first e-mail. What I would like is for
> the bonds to line up along the coordinate axes when one uses the "axes on"
> command. Right now, I have the metal atom at the origin, but the ligands in
> the apex positions are pointingsuch that they are +45 degrees in the xy
> plane and -90 degrees in the z plane (based on having the z axis vertical,
> the x axis pointing out of the screen and the y axis in the plane of the
> screen).
>
> I don't know if that helps.
>
> Marco
>
>
> On Fri, Oct 15, 2010 at 5:02 PM, Robert Hanson <[email protected]> wrote:
>
>> # get vector to align with Z:
>> Var vectorXY = {atomno=3}.xyz - {atomno=1}.xyz # perhaps
>>
>> # get cross product for axis of rotation:
>> Var axisRotation = cross(vectorXY, {0 0 1})
>>
>> # get angle of rotation as a dihedral:
>> Var theta = angle(vectorXY, {0 0 0}, axisRotation, {0 0 1})
>>
>> select *
>> rotateSelected molecular @axisRotation @theta
>>
>> Now, this actually changes the coordinate positions. Hard to know what you
>> mean by "the axis that is displayed in Jmol" --- That could be the molecular
>> axis, the current Z axis for the window, or other things.
>>
>> Do you just want to "look down a bond"? If so, rather than doing that, can
>> you perhaps "look down a bond with a certain atom to the right"? That I can
>> show you how to do with quaternions.
>>
>> Bob
>>
>> On Fri, Oct 15, 2010 at 12:50 PM, Marco Zimmer-De Iuliis <
>> [email protected]> wrote:
>>
>>> Hello all,
>>>
>>> I am trying to make an octahedral molecule align with the axis that is
>>> displayed in JMol.
>>>
>>> The central metal atom is at the origin, but I would like to have the
>>> metal ligand bonds aligned with the axis.
>>>
>>> I don't know how to re-set the axis to move it or how to find the
>>> coordinates of the atoms.
>>>
>>> Any help would be greatly appreciated.
>>>
>>> Cheers all and have a nice weekend.
>>>
>>> Marco
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Download new Adobe(R) Flash(R) Builder(TM) 4
>>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>>> Flex(R) Builder(TM)) enable the development of rich applications that run
>>> across multiple browsers and platforms. Download your free trials today!
>>> http://p.sf.net/sfu/adobe-dev2dev
>>> _______________________________________________
>>> Jmol-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>>>
>>>
>>
>>
>> --
>> 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
>>
>>
>> ------------------------------------------------------------------------------
>> Download new Adobe(R) Flash(R) Builder(TM) 4
>> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
>> Flex(R) Builder(TM)) enable the development of rich applications that run
>> across multiple browsers and platforms. Download your free trials today!
>> http://p.sf.net/sfu/adobe-dev2dev
>> _______________________________________________
>> Jmol-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>>
>>
>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> Jmol-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
>
--
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
------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users