Reinventing the BaseWheel

Finally the wheel solution that works in all situations.

Follow up:

How does it work?
Well I honestly don't know. Majoul (fr) did the math and the magic. But it works and it works in all the situations I needed it to work in.
Just move the BaseWheel null parent and the cylinder will rotate accordingly.
You can modify the radius of the cylinder to fit your own model.

Here is the file : BaseWheel R.9.5+ Enjoy and post a comment or show me your animations.

And off course Donations are always welcome...


12 comments

Comment from: Joe Melnick [Visitor] : 2008-12-20 @ 23:52
Thanks for posting this! I guess all you need to do is pair this with a 'stick to surface' routine and you're off to the races.
Comment from: Norman Auble [Visitor] : 2008-12-27 @ 16:39
Align to spline works great with this thanks much!!!

AS Usual

Comment from: Andre [Visitor] · http://www.movmind.com : 2009-01-08 @ 11:18
*****
Thanks very much!
You rock!
Do you know anything where I can have the same result in this, but it can be applied in the 4 wheels of a car, which means it have to had, the steering wheels also in the front.
Comment from: mabad [Visitor] : 2009-01-13 @ 00:45
Very nice expression, very useful.

I have taken a look at the Xpresso.

Dividing the distance betweem the last position of the null and the current position of the null by the radius, the rotation of the wheel in radians is obtained (that's why it works with any wheel radius).

On the other hand, there is a calculation of a vector between the current position and the last position of the null. Once this vector has been normalized and "dot multiplied" with the Z axis vector of the null object, as both vectors have a length of 1, the cosinus of the angle formed between the movement of the null and the Z axis is obtained. The usage of this is, mainly, to see whether the calculated radians have to be rotated in a direction or the opposite one (moving the null on the Z axis only will produce values of -1 or 1 depending on the Z direction chosen). If the null is moving on its Z axis in a non orthogonal movement, this operation will also indicate if the radian displacement has to be positive (cosinus =1) or negative (cosinus =-1).

Multiplying this direction value by the number of radians, and adding them to the last Y(P) rotation of the wheel will produce the total number of radians to set the to the wheel P.rotation.

I hope this is "kind of" understandeable.
Comment from: base80 [Member] Email : 2009-01-13 @ 00:50
*****
Excellent comment!! Thanks

Comment from: Irfan [Visitor] : 2009-01-13 @ 18:29
*****
Thanks - this works just great. I'm trying to use this in a tricycle rig - I have pedals constrained to the wheel, but I am not able to get them to turn on their own axis - to remain on horizontal - any ideas?
Comment from: base80 [Member] Email : 2009-01-13 @ 18:32
That sound as an easy setup to me!
Just divide (by something) the rotation of the wheel and feed it to the right rotation port of the pedals
Comment from: Irfan [Visitor] : 2009-01-13 @ 18:39
Thanks for the input - will give it a try - Cheers
Comment from: Michael [Visitor] : 2009-03-31 @ 08:09
Hi, you might know that I played arround for some time with wheel setups.
You can replace the "Winkel Cos" coffee node with a "math multiply" setting its data type to normal (vnorm() = normal).

-Michael
(aka Sneaker)

PS: Love your blog, great work
Comment from: Dom [Visitor] : 2009-05-30 @ 05:19
****-
I am trying to apply this to a model that I am using, (giant Skittles® piece).
Do I need a working knowledge of expresso to get this working for my model? thanks, great site!
Comment from: jji [Visitor] : 2009-07-25 @ 01:54
*****
Excellent!!
Comment from: vjbios [Visitor] : 2010-11-29 @ 10:30
very nice expresso it work badly well 4 me. thanks

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
PoorExcellent
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)