True 360 degree rotation by means of Transform or Copy Rotation?

hi, I’m working on a puzzle box driven by gears, some parallel, some big, some small, and one at a right angle.

Problem i am running into is my 120:360 degree rotation is resetting every 120 degrees. I tried a 360:1080 degree transform but it is still mocking me. :spin:


You need to do this wth drivers, it’s the only way I know of to animate gear trains successfully over multiple revolutions of the gears. Do you know how to do this, if not let me know and I can give you some pointers.

Cheers, Clock.

I’ve never heard of drivers before today. I just started to get comfortable with the tools i learned in tutorials, but even in one of those tutorials, they said it wouldn’t be true 360 rotation and if the object i was rotating wasn’t uniform it would be noticeable.

is a driver based on game engine stuff or bones, or something completely new?

Drivers have always been there in the standard Blender - they will produce uniform rotations, I have used them in my gearbox and clock models for example - you can just search the WIP here for these. Drivers are simply mathematical expressions for the movement of one object based upon the movement of another.

Try my website find the “Blender Tutorial” => “Spinning Bones,etc” page - all is explained there, with a blend file to download.

Cheers, Clock.

Well, i had mixed results with the advice provided in your driver example.

I started by creating two gears, one fat, one skinny, with obvious defects so i could track whether they were spinning full 360.

I wasn’t using bones, so the interface options were a little different, but I attempted a constraints: Transform, and right clicked the Z rotation degree window for constraints. I followed your instructions on pressing N in the graph editor and changed the tab from F Mode to drivers.

I found that modifying the “Expr” or expression tab allowed me to type pi directly, however, the program then interpreted this as degrees and i was left with the same problem when simply typing “R + Z” and moving the mouse to rotate the source object (gear 1 -> gear 2)
Well, i looked at your descriptions again, and you had timeline dependence.

So I added a (frame * pi) / 20 for the effect, and moved the timeline bar, but nothing happened! I suspected the “Minimum/Maximum” rotation was confused, since at frame 0, the rotation is 0, but at frame 17 or whatever, the rotation =/= 0. So I made drivers for both minimum and maximum, all in all, i had 4 drivers on one gear.

Now i moved the timeline, and the gear rotates, Hallelujah! (which Tea Party, btw., does a great rendition of Cohen’s version), but woe is me, Gear #1 isn’t moving at all.

Well, obviously because there’s nothing telling gear 1 to move. This got me thinking, maybe i could uncheck the reference to gear 1 in my transform. Nope. Stopped moving with the timeline, so it was dependent.

Well, then comes the next step. Moving gear 1 with the time line. But how? Here’s that dimensional cat toast in a quantum box paradox:

I tied the rotation of the first gear to the second gear, and it worked. divides by zero exploding head
(remember that the second gear’s rotation is based on the first gear)

So, now that I am my own grandfather, I still gotta ask,

How do I do this without keyframes?


Where in my tutorial about using drivers do I mention adding a Transform constraint?

Just create two gears, set a driver on the first one’s rotational axis to be dependant on time (to make things easy) then set the second one’s rotational axis to be dependant on the first’s rotation - simples! If you have four drivers and Transform on one gear - you have done it wrong and should start again.

Cheers, Clock.

I am feeling generous (not default behaviour :eek:) ! Here is a blend file with two “gears” in it. just move the empty in Z axis to see it working. This is all you have to do to build a gear train. Anything else is a refinement, but get your head around this bit first! You can keyframe some movements of the empty if you like as a second stage.

Cheers, Clock. :slight_smile:

gear-drivers.blend (493 KB)

ok, so i looked at your demo, and two things,

#1: i noticed, you had var and -var/2 in your Expr box in the Graph window, where I had stuff like pi, frames, and a failed attempt at radians, which i changed to 57.2958, but i guess var would be better. (i have only used the graph editor 3 times in 3 years, so it is pretty alien to me - i use blender to make stl files for my 3D printer)

I didn’t understand what you meant by time in the previous post. But back to this post, I figured out moving the empty on the Z axis up and down causes the two gears to turn, the first at a ratio of 1, the second at a ratio of negative half, which creates that 2:1 offset.

#2: But a big question: Why are they snapping?

here’s my happy working experiment

frame360_gears.blend (491 KB)

i probably have lots of amateur errors. but when i move the time line, the gears both move.

i guess i can create an empty to base the first gear’s rotation off of.