Solved Project World Axis


I have a user with an odd problem that I tracked down to his project's World Axis. It's a project imported from ZBrush, the world axis plane is upwards, Z is up. If I select an object and switch from Object to World coordinate system, I can see the object's axis switching too.

Because of that project coordinate system, some of my plugin outputs are rotated 90 degrees, so I need to take that setting in consideration. But I can't find anywhere in Cinema 4D how to change (so I can query) the project's coordinate system.
Where is it, please?


If I would take a guess, there is a Workplane active. That is the only way I know that can change the apparent directionality of the world coordinate system. Align the workplane to Y to reset it to the normal world.

To take the Workplane into account with any of your plugins, use GetWorkplaneMatrix() to get the needed transformation.

Hi @rsodre, thanks for reaching out us.

In order to avoid doing too much speculative work on understanding the issue, can you please make a short video showing it and share the scene in order to replicate it here?

Thanks, Riccardo

@r_gigante Sure! I'm not sure anymore if the scene is flipped or the object.

Here's one screenshot with the object selected in Object Coordinate System, and then on World. The move axis is inverted.

Screen Shot 2019-06-11 at 13.02.56.png

Screen Shot 2019-06-11 at 13.03.02.png

Please note on the project...

  • There's two world grids, lighter and darker, each one on one axis. Of course I can rotate the viewport to get the grid straight, but then the rotating the viewport feels strange, as it was really inverted.
  • If I add a new object, it does not have a different Object and World axis, like the Body object


Like @Cairyn said, it's the workplane.

How do you import the ZBrush project?

Ok, I get it. The project has a different workplane...
I've never seen a mention of it on the docs.

My actual problem is drawing and picking/dragging handles.
If I rotate the workplane, the handles rotate with it.
I'll try to work on a solution with GetWorkplaneMatrix().

Thanks @Cairyn

I found my problem.
When the workplane is transformed, any new object will be created with it's matrix.
Since I'm using handles on a modifier, and was using the generator's matrix do draw (I don't need the modifier transform), the handles was being drawn with the added workplane transform.