Two axes of rotation

Greetings Paraview users,

I am new to Paraview but I expect there is a long future in front of me.
I looked hard for a clear answer but I couldn’t find any. I hope I am not asking something obvious.
I simply want to render a basic gearbox with two gears as an animation. However, using the Transform Filter I can only rotate the input around the Global coordinate axes so the question is:
can we have two different axes of rotation or is there a different workaround in order to animate rotating gears?

Thank you for your answer!


I’m not sure how that is supposed to work. How is ParaView supposed to know what is one gear and what is another gear?

If you can separate the two gears into separate objects, then it is trivial to transform each separately.

For me as a beginner it is not trivial because I cannot specify that each gear must rotate around its own axis of rotation. Like the title says, is it possible to have two axes of rotation? I could only find the Transform Filter which takes the global XYZ. I need two different coordinate systems. Is it possible to create different coordinate systems or specify a different axis of rotation?
P. S. I am using v. 5.9.1

I may not be understanding your question. As near as I can tell, you are asking one of two questions.

Question 1: You are loading a single file, such as gears.stl that contains 2 gears, and you want to apply separate transforms for each of the gears. ParaView cannot do this because it doesn’t know what a “gear” is. You first have to split the data into two objects. There might be ways to do this, but we would have to know more about your data.

Question 2: You have two separate objects, such as loading a file gear1.stl and gear2.stl, and you want to rotate each around its own center. The problem is that when you apply a Transform it always rotates around the center of the world instead the center of the object. Unfortunately, there is no way (that I know of) to change the center of rotation for the Transform filter. There is, however a trick by using a sequence of 2 Transform filters. Have the first Transform filter translate the object to be centered at the origin. Use the second Transform to do the actual rotation and also set the translate back to its original position.

If you have further questions, it would be helpful if you could post an example of your data. That would give us a better idea of what your problem is and how it can be fixed.

Thank you for your answer. It was the second case. The first one is pretty obvious. But for the second it seems like a big limitation, not to be able to create additional coordinate systems or specify different axes of rotation. However, your solution seems trivial now that you mention it. A little involved, but should work fine. I will try it on Monday and check the result.
Thank you

But for the second it seems like a big limitation, not to be able to create additional coordinate systems or specify different axes of rotation.

ParaView is for post processing, not for CAD.

In any case, the Transform filter has a RotateAroundOrigin (since 5.9) that lets you select the point of rotation, that should avoid any complex transform.

Thank you for your answer, although I couldn’t fine the RotateAroundOrigin option in v 5.9.1 on my linux installation. Maybe I don’t have the correct version.
As a side note, what I am trying to do is to animate CFD simulation results using Paraview so I would call that post-processing. I can do it in the original software quite easily but that sw doesn’t have some nice features that Paraview has like ambient occlusion and ray-tracing capabilities. Unfortunately I cannot export the animated geometry data from the sw so I have to do that in Paraview.