I'm new to blender but not to 3d modeling, and I'm trying to rig a 7 cylinder radial engine, everything is set: crankshaft, piston, counterweight, planetary gear made with the extra mesh add-on(it could be important cause those gears are working perfectly) and rigged with a rotation driver for an output of 1/6 ratio. I'm know trying to rig a hand modeled piece (the cam ring ) which spin at the same speed as the ring gear with the same driver: -(var*1/6) of the sun gear. but a rotation of 180° on the X axis of the sun gear cause a sudden jump back of 30° on the x axis of the cam ring I tried to delete the driver on the cam ring and parent it to the ring gear directly but still doing the same. Could anyone help?
There are two different kinds of ways you could be driving this. One would be to drive it from a transform channel/rotation. The other would be to drive it from a single property, like "rotation_euler". The first will not work for you. The second should.
I don't know which method you're using. A file would make it clear.
Driving rotation from a transform channel gives you the rotation after it has been converted into a matrix and had all constraints applied to it. Matrix transformations do not represent rotations outside the -180, 180 degrees range, which is sufficient to represent all orientations of a specific object. But when you go from 120 degrees to 180 degrees to, say, 240 degrees, your driver is seeing this as going from 120 to 180 to -120 degrees-- and a sixth of that is 20, 30, -20, which creates a discontinuity.
If you instead drive rotation from a single property, you get the actual amount of rotation specified directly by the f-curve, before any constraints, before it's been converted into a form that destroys this information about "extra" rotations. In this case, in the example above, you would see a smooth 20, 30, 40, just like you'd expect.