Last night, looking at your ‘folding’ model, I suddenly grasped your perception of snappable pivot and 3D-Rotation. It all came together.
Behold: Bongo has it all.
Firstly you don’t have to be satisfied with the position and orientation Bongo automatically assigns when an object is initially animated. You can use the BongoMovePivot and BongoRotatePivot command to reposition and reorient the pivot. The commands can be typed in the command line, or you can use the buttons at the top in Bongo’s Object Properties window.
Naturally, as I mentioned before, Rhino’s Osnaps can be deployed.
Secondly there is the notion ‘Rotate in Object space’ versus ‘Rotate in World space’.
When the orientation of the pivot of an object is modified, it differs from the orientation of the World coordinates – commonly called ‘World space’ – which are indicated by the World axis icon in the lower left corner of each Rhino Viewports and by the Grid axes. The ‘space’ (origin and orientation) defined by the object’s pivot is often referred to as ‘Object space’.
In the ‘Object Settings’ section of Bongo in the Object Properties window you will find the option ‘Rotate in world space’, which is enabled by default.
Now it becomes interesting… when you unmark this option, the object will apply rotational animation data around its own pivot axis - it rotates in Object space. Hence when the Object’s space is different from World space you get the sort of 3D rotation I think you were looking for.
A demo. Object space.3dm (68.8 KB)
Experiment with the ‘Rotate in world space’ setting and you can see how the objects behave accordingly.
PS Also when you use Rhino’s Rotate or Rotate3D command on an object which has already an animation pivot assigned to, the pivot is rotated along – hence redefining his private ‘Object space’.
PPS Your folding model is a mindbender, but I have a positive premonition. I’ll get back.