• 0

# 3-D Rotations ala Rotation-Matrix Operations

## Question

I have created a mutually orthogonal i, j, k, unit-vector triad in 3-D. Initially aligned to the workplane axes X, Y, Z.

I then rotate the ijk group about a specific workplane axis, say the X-axis (all of which I can do through this point).

Next I want to rotate the triad about one of its vectors -- say j'. This, I can't get VW8.0 to do.

Subsequent rotations about higher primed (further-rotated) axes / unit-vectors must follow. These are all numeric-input rotations - it won't do to grab a handle and start dragging!

Questions: Can VW do this? Can it reasonably be done using VectorScript?

TIA for useful instructions.

## Recommended Posts

• 0

How are you rotating them? Have you tried the Rotate 3D command in the tool menu?

VectorScript does have 3D rotation commands, but it can be tricky at times.

Note: A group does not have a rotation matrix attached to it...it's just a collection of individual objects that move as a group. A symbol would have a matrix attached.

[This message has been edited by jodawi (edited 06-26-2001).]

• 0

I might be confused, but couldn't you use the rotate3D menu command and do the rotations in the opposite order to get what you want?

• 0

Granted, there is a high chance that I'm the confused one. But, my problem with the menu command is its inability to rotate an object about an axis other than: 1) one of the working-plane X,Y,Z axes, 2) one of VW's I,J,K axes (which are not related to my i,j,k unit vectors), or 3) an object center (I forget the actual description of that last axis).

If I have defined each of the three unit vecetors to be 1-inch long, and then group the 3D set, I have a one-inch cube. After my first rotation, which must be about one of the WP-axes, and assuming the next rotation is not about the unit vector that is still aligned with the first rotation axis,VW rotates the cube about its center! I want it to rotate about a specified edge of the cube.

In 2D, rotations are beautiful -- as supported by placement of the locus point. For 3D, we need a "locus-line" that could be superimposed on a 3D-polyline -- that's what is missing (for me).

Regarding reverse-order: I can't do operations in the opposite order. If I knew how to orient the triad in its final position (relative to my reference coord-system), I would be done! No, to get there, each rotation must be done in the proper order / sequence to obtain a correct, final orientation.

Thanks for your thoughts on this, jodawi.

• 0

quote:

Originally posted by jodawi:

How are you rotating them? Have you tried the Rotate 3D command in the tool menu?

VectorScript does have 3D rotation commands, but it can be tricky at times.

Note: A group does not have a rotation matrix attached to it...it's just a collection of individual objects that move as a group. A symbol would have a matrix attached.

[This message has been edited by jodawi (edited 06-26-2001).]

• 0

Yes, I used the Rotate-3D command process for the initial rotation; but got blocked after that.

Essentially, I must be able to identify a line element that represents one of the rotated i,j,k vectors as the next rotation axis (to get the i'',j'',k'' set). Then in that set I would select one of those line elements as the next axis and command a third rotation.

The "symbol" aspect is interesting, but as stated above, I must be able to specify which of the three axes within the symbol is the proper one about which to do the next rotation.

I grasp what you are saying about the VectorScript capability. My current thinking is it would be necessary to code actual matrix multiplication routines to get the work done. I do that using Mathcad. My purpose in resorting to VW is to get some illustrations to provide visualiztion of the operations being done in Mathcad.

• 0

Sorry to jump in with a possibly stupid suggestion, but have you tried defining another working plane aligned with your i,j,k vectors and performing a rotation using that coordinate system?

• 0

Glad to hear from you Retondo. Actually that sounds like a workable idea! I'll give it a try.

Also, appologies to all reading this thread -- in previous posts, I have been mixing up Ground-Plane axes with Working-Plane axes, so that will have been confusing.

• 0

Yes, P. Retondo has led the way! It wasn't pain free, but ultimately massging the Working-Planes works. Thanks.

FYI, here is a note I wrote to myself about the operations required:

VectorWorks does not make it easy to do compound rotations. For example if a rectangular-parallelepiped is drawn in VW, and it is desired to rotate the 3D object about two or more of its edges in a sequence of rotations, VW can easily do the initial rotation, but it is not programmed with straightforward commands to identify tilted, 3D, object lines or edges as subsequent rotation axes.

Using the following VW tools, one can create some work-around steps:

a) Palettes | 3D Tools | Set Working Plane Tool

b) View | Move Working Plane

c) View | Rotate Working Plane

d) Tool | Rotate | Rotate 3D | Rotate Object in 3D.

Some observations:

Tool (a) works well on the face of a rendered object, but never did set a new Working Plane by the three-point method. With tools (b) and ©, use only the I, J, K settings; and be prepared to fool around (trial and error) with the signs of displacements or rotations. Tool (d) should be used with the Working Plane Center option and a selected Working Plane Axis, I, or J, or K.

Some sample steps:

1) Select object and use tool (d) do to first rotation. Render object solid.

2) Use tool (a) to place the WP on a face of the object that also contains the next pivot axis.

3) Make sure that either I or J in the WP is collinear with that next pivot axis; if not, use tools (b) and / or © to align I or J to the intended pivot.

4) Use tool (d) for the second rotation.

5) Loop on (iterate using) steps 2) through 4) for all subsequent rotations.

6) Generally, these rotations will be relative to a coordinate reference frame that is to remain stationary, and one corner of the rectangular-parallelepiped should remain attached to its origin. If, after all rotations, the corner is offset, then use nudge to shift the object as desired.

Regards.

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

×   Pasted as rich text.   Restore formatting

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×