Is there any way to set max rotation greater than 360?

I have a screw model that is meant to be able to screw in or out. I have a driver on its X coordinate so that for every 360 deg it moves a certain small distance.
I have it set up that 5 turns (1800 deg) Y translates to about 40mm of movement, but the exact numbers are irrelevant.

I’ve already locked all the other axes and added a Limit Rotation constraint to the object forcing X and Z to stay zero and for Y to have a min of 0 and a max if 1800, but setting the maximum past 360 and scrubbing past 360 makes it just roll over and start again, not actually limiting the rotation.

I realize this is due to the nature of eulers and how values over 360 just get read as 0-360 no matter how high you go, but I want to make these limits so I don’t accidentally go too far in the future since there will be a lot of them.

Workaround Solution:
Right now I’m simply driving the Y rotation of the screw with a custom property and setting the maximum of THAT to 1800.

Its not very elegant and I was hoping there might be a better way so I can limit the maximums at the transform sliders and not have to use the properties sliders. Is there one?

I just checked and quaternions wont work, either

I’m a bit puzzled because the screw modifier has multiple parameters:

  • Angle
  • Screw
  • Interation

where the srew defines the height “repeat difference”, angle the “area” and interation the “repeatness”…

…or are you talking about geometry nodes ?? ( then you want this to move (pencil icon near the headline) in modelling and tagged with GN and not in basic & interface ???)

You can rotate at any number of degrees in Local space AFAIK. (but limit rotation does not work at all, it is the first time i checked it in my life and it does nothing). EDIT: Ignore the answer, i got the question wrong, now i see that every 360 d the object jumbs back.

I was talking mainly about regular object transforms in the 3d viewport. For geometry and shader nodes it doesn’t seem to matter as much.

AFAIK the screw modifier doesn’t affect the pivot point in object mode or in edit mode.

yeah, thats the problem: every 360 it snaps the object back. In fact this seems to also be a bit of a problem with IK limits as well

Ok, maybe I am missing something here, but this isn’t something that is hard to do.

Insert a key frame for rotation of 0 on frame 1. Advance to frame 100, and in the rotation value field for the object, enter 1800, and insert a key frame. Your object should now make 5 rotations over the course of 100 frames.

To make the bolt move in and out as it’s rotated, I’d use a driver to do that.

feel free to ask questions…
Randy

The title is misleading. The question is if Rotation can be limited to max 1800.

@kyrgr - Thanks for pointing out my misunderstanding! I just re-read this post.

@Krayne yes limit rotation constraints are useless in cases like this. I think it has to do with how they handle the math. In blender 2.5-2.7 you had to use drivers to rotate gears based upon other gears rotations. Copy rotation constraints would fail when rotations went over 180 degrees.

To see the problem, start a new blender file, go into top view, and rotate the default cube counter-clockwise. Watch the cube’s z rotation values in the UI. You can rotate the cube as far as you want.

Now add a limit rotation constraint on the cube setting z min to 0, and z max to 360, and rotate the cube. You can rotate the cube forever, the constraint has no effect on it. Check the ‘Affect Transforms’ box on the constraint and rotate the cube counter-clockwise again. Watching the cube’s z rotation value as you do this and you’ll notice that past 180 degrees, the rotation values changes to -179, -178. Not 181, 182, as you would expect

Set the constraint’s z max to 180 and it works. You can’t rotate the cube past 180 degrees.

Given the faults with the limit rotation constraints, your method of using a custom proptery to limit the rotation is probably the best idea. Yes, not very elegant, but with a little bit of python coding, you can embed those custom properties into the UI for easier access/control.

Randy

1 Like

Yes, I did notice all of this. I was hoping there would be a way to maybe set the max for the slider itself, but it looks like my workaround using custom props is the only way.
Its also a little annoying that setting limits doesn’t set them for the object transform sliders.
Like, I’ll set a limit for X location to be 1 and if I drag it with the G key or the number slider in transforms, yeah the object itself stops at 1 but the actual value in transform props and the n panel just keeps going up. Same with all limits.
You can see how this is annoying for animation. I go to rotate a limb and I want it to be all the way bent so I press R, quickly flick to the end then click and add keyframe but then when I play the animation it is way too fast and gets there way too early, so if I want to animate something that goes to the limit I have to manually type or paste the value every time