There are 2 ways to specify a rotation amount. AngularVelocity and
TargetOmega. TargetOmega occurs client-side.
******************
AngularVelocity
Basically, a rotation amount determines how fast a rotation occurs around one or more axis. (x,y,z). Each axis has its own speed. It is in radians per second. There are about 57 degrees in a radian so if you want one revolution per second then you need about 6 radians or more specifically 2-pi which is 6.283.
So to rotate around an x axis once per second you would need an AngularVelocity of <6.283,0,0>
Twice per second would be: <12.566,0,0>
The chosen axis, usually just 1, determines whether the flight is more frisbee-like or more end-of-end (think football field-goal flight) depending on orientation.
SetAngularVelocity ignores mass.
SetAngularVelocity will slow down overtime.
******************
TargetOmega
SetTargetOmega will NOT slow down overtime. Its rotation is constant.
Example:
TargetOmega,<1.0,0,0>,6.283185,2
Where:
<1,0,0> = the axis of rotation, usually just one. <-1,0,0> will reverse the direction of the rotation/spin.
6.283185 = is the radians of revolution per second
2 = gain which is a multiplier of the radians. So 2 is twice 6.23185 or 2 revolutions per second. a value of zero would stop the revolution.
******************
We need to flip a switch to tell the Thrower program with method we are choosing. We cannot choose both.
The switches in the *thrower nc are called:
SetAngularVelocity,(on/off)
SetTargetOmega,(on/off)