Struggling with working with mesh normals for 3D printing

Hello Everyone
I am working on a project involving scanning some old hand tools to be printed as part of a larger sculptural installation. I want to be able to scan the objects, repair the mesh and then offset the mesh
to create an object that is actually a skin or shell that can be printed. The artist I am working for wants to print the objects as shells rather than as small solids for visual and conceptual reasons. In the attached file you will find two meshes, one being the exterior mesh that came from the scanner and the other being the interior mesh that I have created in Rhino. I can’t seem to get all of the mesh normals pointing in the appropriate direction for the interior mesh that I have generated. I would welcome any help or advice.

Hi @Caleb_Kullman,

you can try _Flip on the interior mesh so the normals point outward. Usually if one mesh has it’s normals pointting inward and outward use _UnifyMeshNormals so they are pointing in one direction only.

btw. the interiour mesh has many self intersections. Did you offset that in Rhino ?


Thanks Clement
Because the interior mesh is the interior surface of a hollow object, shouldn’t the normals all point inward? Yes I offset it in Rhino. How do I repair or eliminate the self intersections?

In case of Nurbs objects, Rhino handles the normals automatically to point outward when a solid (closed) object is created. But with meshes, the normals are allowed to point either outward or inward even when the mesh is closed.

Since you’re offsetting inward by 0.1mm, self-intersections are to be expected. Rhino is more oriented to Nurbs modeling and does not check if the mesh offset will produce self-intersections as it does only move the mesh faces along their vertex normals. It is not a trivial task to fix the result afterwards with Rhino. But you can perform the offset with eg. MeshMixer which removes selfintersections during the offset. Below is an example:

caleb.3dm (2.9 MB)


Thanks Clement. I have my model set to inches, which makes it a bit bigger offset, but the concept is still the same. I have also been getting acquainted with Meshmixer. Working with meshes and scans has been a bit frustrating to say the least.

I opened the file and it looks great! What exactly did you do in Meshmixer? It looks so much more clean. Was it just a straight offset or did you use a multi step process?

Hi Caleb,

i just exported the mesh out of Rhino using *.obj file format. In MeshMixer i used CTRL+A to select all faces, then from the edit menu used Offset (or CTRL+D) with below settings:

Distance: -0.1
Accuracy: 50
Regularity: 30

All other settings where left at defaults i guess. It takes a while though, if you increase Accuracy and Regularity it takes even longer but the mesh will look better.


Thanks Clement. I will try that on the next one. It took me a couple of hours to repair the mesh after I offset it in Rhino and then it still looked rough.