Unify Mesh Normals in specific direction

I have a mesh where depending on parameters my normals are pointing in postive or negative Z-direction. Since Weaverbird’s Mesh Thicken doesn’t allow input of the direction, I would like to set the direction of the normals before already. That way I can control in which direction the thickening takes place. I managed to do it using C#:

private void RunScript(object MeshInput, ref object OrientedMesh)
 Mesh mesh = (Mesh) MeshInput;
 for(int i = 0; i < mesh.Faces.Count; i++)
      var normal = mesh.Normals[0];
      if(normal.Z > 0)
             mesh.Flip(true, true, true);
    OrientedMesh = mesh;

However, I would need to make it work without scripting, so that I do not have to wait for ShapeDiver to manually check my scripting in my model. Is there a solution with expressions and other building blocks (I am relatively new and have already tried but not succeeded)?


1 Like

So I’ve found a solution (see below), but I would be really interested to know if there was a cleaner/better way to do it and if there are any risks connected to this method.

What I do now is (where y = 0, z=1):

1 Like