Notifications
Clear all

[Closed] "Moving Forward"

Very new to maxscript and I’m trying to write a script that turns a wheel accurately based on it’s distance moved. All is working until the motion of the wheel ‘reverses’ and it continues to spin the wrong way.

So how can I give an object a ‘forwards’ direction or vector, so that I can detect when it’s travelling ‘backwards’…E.g I thought I’d be able to say that the Y axis of a parent object was the forward direction of the attached wheel but I’m unable to detect anything useful along its axis of travel…

I’m looking at the -in coordsys local/parent- for clues but any help would be appeciated…

2 Replies

If you’re writing your own, check out the rollin script:
http://www.asd.3d.pl/scripts/rollin/rollin.html

It may provide some insights.

yeah thanks – seen it – but it didn’t really help solve my problem as it doesn’t work 100% of the time…

I have also been through the script before to understand how he’s detecting a reverse direction but to no avail…

the script I’m looking at is a rotation script so works as you animate…and looks like this…

obj = $Cylinder01 –name of object
timeres = 1f

fn getrot t =(
myradius=obj.radius
if t<0f then return 0
t0 = t-timeres
t1 = t
rot0 = getrot(t0)
p0 = at time t0 obj.position
p1 = at time t1 obj.position
if p0 == p1 then return rot0

dif = (p1-p0)
len = Length(dif)
angle = 4*len/((myradius+myradius)*pi)
rot1 = rot0 + angle
)

getrot(currenttime)