"Joint" Node available?

Next
 From:  JaXXoN
8747.1 
Hi!

I'm currently exploring the nodeeditor and trying to use it to i.e. move the ailerons on the wings of an aircraft.

However, I guess I'm not doing it quite right, yet: in the attached examples, I first move the ailerons from their positions to the origin, perform the rotation and then move the ailerons back to their original positions. The mechanism is very simple, but the dislocation and relocation offsets are entered manually - that could be very time consuming end error prone for complex models.

Maybe there already exists a more elegant way to concatenate objects where you can define at which position the objects join and at which angle(s) the concatenated object should be rotated (and potentially translated, too)? Ideally, it possible to create a skeleton that has controllable joints and later you can add objects to each "bone" of the skeleton.

Any feedback is highly appreciated!

Bernhard






  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8747.2 In reply to 8747.1 
Hi JaXXoN,

The quartz node has a tictac mode, to reverse motion. Select in I ( node info button ), on nodeeditor canvas.
The Motor2017 node shows some movement.
- Brian

https://www.alanzucconi.com/2017/04/10/robotic-arms/

EDITED: 16 Dec 2017 by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
8747.3 In reply to 8747.1 
Hello JaXXoN,

no there isn*t a joint node. MoI hasn't something like a constraint solver e.g. D-Cubed technology. Typically used in parametric CAD-Systems with a support of assemblies or in the sketchers of those programs.
But you can manipulate the axis system of the rotation. The point has also axis system informations - in MoI called a frame- and can be aligned by other nodes. If you want to see the alignment you have to install the extensions. Under the Infos menu item you will find then a showFrame node.




Have a nice day
Karsten
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.4 In reply to 8747.3 
Hi Karsten!

Thanks very much for the hint!

Does there exist a node that turns an object into a point? I couldn't easily find one.

What I'm after is: instead of creating a point and manually entering the frame location (as you suggested, above), wouldn't it be nice if you instead could use i.e. the centre of another object as reference?

I tried this with the "ObjtoArray" node: it's possible to connect the "Array" output to the "Frame" input of the "Rotate" node, but then there is no output (count is zero). Please see attached "knee" example. For some reason, it is necessary to always re-assign/update the "knee" and the "bone" after loading.

Any feedback is highly appreciated

regards

Bernhard


P.S.: a constraint solver would certainly be nice, but I'd be happy if there's an easy (fully graphical) way to add rotation (and optionally translation) control.
Attachments:

Image Attachments:
Size: 107.4 KB, Downloaded: 3 times, Dimensions: 308x340px
Size: 29.9 KB, Downloaded: 7 times, Dimensions: 799x370px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.5 In reply to 8747.2 
Hi bemfarmer,

Thanks for the feedback!

Is there a general advantage to use reverse motion over the mathematics node?

best regards

Bernhard
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8747.6 In reply to 8747.5 
Hi Bernhard,
I just mentioned the tictac mode as a possibility.
- B
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
8747.7 In reply to 8747.4 
Hello Berhard,

please check this files. You have to use the nodeeditor extensions for that (http://moi3d.com/forum/index.php?webtag=MOI&msg=7777.750). Copy the included files under nodes\extensions and restart MoI. I have used a line to evaluate the rotation points and named all parts, so you can use getByName.

Have a nice day
Karsten

p.s.: Don't forget the file in libs.

EDITED: 18 Dec 2017 by KMRQUS

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  speedy (AL2000)
8747.8 
Hello Bernhard
I used your file to show you a possible route to
determine your rotation Frames ..
furthermore, underneath I have automated the movement with
the Quartz node ,and using the new Switch node
to stop the movement at the beginning of the action ..
I hope you can help
Have a nice day
alberto
Ps- file at this link:http://www.mediafire.com/file/xlmauruxc2o4pd8/Ailerons.rar
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.9 
Hi all!

Thanks very much for the feedback. I appreciate it!

So the trick is to define "hinges" and then get their frames with the BoundingBox node.

I have attached a very simple stick & rudder example for an aircraft control.








best regards

Bernhard


P.S.: I still have some questions on the other examples, but I'll send separate posts.

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
8747.10 In reply to 8747.9 
Hello Bernhard,

you can also use the getCrvStartFrame node as a replacement for the getBoundingBox if you use lines as your rotation axis. The advantage would be that the z-axis of the frame is always aligned to the line direction. Only difference: You have to rotate around the z-Axis. Al shows that in his example. Al: Thanks for that.

A nice day to all
Karsten

p.s.: It looks like that we will have a MoI airplane to fly through our MoI worlds next time. If Ralf will bring a camera to the airplane ...

EDITED: 18 Dec 2017 by KMRQUS

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  r2d3
8747.11 In reply to 8747.10 
I think it must be a GIMBAL camera... ;-)


Ralf:)
looking for moments of inspiration...
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.12 In reply to 8747.10 
Hi Karsten,

getCrvStartFrame works for me as you described, thanks for the hint!

best regards

Bernhard
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.13 
Hi!

Inspired by Karsten knee example, above, I created a simple robot arm with three joints and grouped the nodes in a way that makes the cascading better visible: the same block is used three times - I guess it would be possible to create a macro for that.






However, I'm still wondering if it's possible to do this cascaded rotation much simpler: at the moment, the whole thing is rotated, at first. Then everything is split in order to work on the next joint (and so on). I think it would be much simpler if only the first "bone" and "joint" are rotated and the rest orients itself accordingly. Maybe I need to use RotatePts, instead, building cascaded frames?

BTW.: I made a few observations:

1. "Concat" appears to be limited to six inputs (the "Inputs" field is greyed out in the right click pop-up menue after slot "f" has been created).
2. Of you need more than one clone, then you need to cascade Clone. Does it make sense to extend Clone for more than two outputs?

best regards

Bernhard

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.14 
Hi!

Here's a variant that doesn't need concatenation and splitting via idxSelect, but it doesn't look as clean.

However, there is one advantage: in the previous version, it was necessary to manually enter the indices, whereas this version can be done fully graphically.



BTW.: what's the difference between "RotatePts" and "RotatePts"? I tried both and in the robotarm2 example and they are doing the same thing.

best regards

Bernhard

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  JaXXoN
8747.15 
Hi!

Here's a mix of robotarm.nod and robotarm2.nod from the earlier postings. It's using only two objects for the concat and idxSelect stages, so there is no need to figure out the indices manually.
It looks cleaner, but I'm still not happy that the angles also need to be propagated through Math adders. That works ok for this example, rotating all objects around the same axis orientation, but if you need to rotate around several axis then it probably won't work as expected.





Mathematically, this is just a simple chain of vector calculations. It would be great if this could be mapped to nodes without tons of house-keeping around it. In this context, a experimented with the "vectors" in the extension, but couldn't yet archive the desired result.

BTW.: it appears that the "Rotate" node only makes use of the position of a supplied "Frame", but it doesn't use the orientation information. As far as I can tell, that would probably make it easier.

feedback is highly appreciated!

best regards

Bernhard

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  bemfarmer
8747.16 In reply to 8747.15 
The rotate axis command uses the right hand rule, per M.G.
- B
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All