MoI discussion forum
MoI discussion forum

Full Version: RotateAnimator Macro for NodeEditor

From: JaXXoN
18 Mar 2018   [#1]
Hi!

Related to the following discussions,

http://moi3d.com/forum/messages.php?webtag=MOI&msg=8747.1
http://moi3d.com/forum/messages.php?webtag=MOI&msg=8865.1

I developed a "RotateAnimator" macro that allows to more easily cascade "joints" and "bones" in order to create i.e. something like a robot arm:





The idea is that an animated object consists of a series of "joints" and "bones", where the "bones" can be rotates around the "joints":





Internally, the macro uses the "Orient" node and the "RotatePts2" node:



Here, first the "joint" is oriented to an optional "parent" RotateAnimator and then the "bones" and an optional "child" RotateAnimator are oriented to the rotated "joint".

That works pretty well for rotations around rX any rY, but rotation around rZ is not working as expected: only the bones of the current RotateAnimator will rotate but the bones of the children RotateAnimators will not.

I have attached a simple robot arm as an example (see "RotateAnimatorExample.3dm" and "RotateAnimatorExample.nod") if somebody is curious to try this out.

Please note, the "Joint" needs to be a single line as the macro uses "getCrvSFrame". The input for "Bones" can be any number of concaternated objects.

TODO:
* Investigate why rotation around rZ does not work as expected.
* Create a "TranslateAnimator" that does tX/tY/tZ translations along the axises (i.e. for linear servos)

Feedback is highly appreciated

best regards

Bernhard

Attachments:
RotateAnimatorExample.3dm
RotateAnimatorExample.nod

Image Attachments:
RotateAnimatorExample.png  RotateAnimatorExample3dm.png  RotateAnimatorMacro.png 


From: Frenchy Pilou (PILOU)
25 Mar 2018   [#2]
Not yet tested (for translate in French ;)

So it's a separed set of nodes of the "Official Elephant" ?
From: JaXXoN
25 Mar 2018   [#3] In reply to [#2]
Hi Pilou,

Thanks for your feedback. "getCrvSFrame" and "RotatePts2" are from the extension package - the other nodes in the macro are taken from the stock node editor (however I have a version of the marco that uses "BBox Center" and "Rotate", which does a "similar" job).

This macro isn't really something special. The situation is that it took me quite some time to understand how to arrange cascaded orient/rotate operations in a simple way so that you can have something like a robot arm. Examples for Robot Arm like structures have been posted, before, i.e. from Karsten. But that involved quite a number of nodes where indices needed to be entered, manually. I assumed that there might be more beginners (like me) who may run into the same issue. So I thought it might be helpful to create a generic macro that makes the same job done in a simpler way.

best regards

Bernhard