top of page

3D Printing

Tips for Creating Models in Rhinoceros for 3D Printing

Rhino can be a valuable tool for both the creation of 3D mesh and as a tool for conversion of parametric based geometry to polygon geometry. Rhino also imports a large number of file formats, which can be converted to the .stl file format.


Exporting to .stl

Prior to exporting to .stl format follow this diagnostic tool to check the quality of the solid.

.stl Mesh Export Diagnostics

For some rapid prototyping machines, .stl files must contain completely closed (watertight) polygon mesh objects. You might want to do this to make sure the meshes really do fit together before exporting them for use in an expensive .stl job. Use Join, then Weld (angle=180), UnifyMeshNormals to turn a group of meshes into a single watertight mesh object. Then use SelNakedMeshEdgePt to find the open (naked) edges.



  • Select the mesh objects.

  • From the Edit menu, click Join.

  • Conceptually this gets all the triangles into one bag, but does not glue the edges together. (The situation is similar to having a bunch of surfaces that all fit together but have not been joined into a Solid.)

  • Select the new mesh object.

  • From the Tools menu, click Polygon Mesh and then click Weld.

  • At the Angle tolerance prompt type 180. An angle tolerance of 180 tells the Weld command to glue adjacent triangle points together no matter what.

  • From the Tools menu, click Polygon Mesh and then click Unify Normals. This changes all the triangles so they are oriented the same way, that is, if two triangles share an edge, then they have the same idea of up.

  • To see if the result has any holes or gaps, type SelNakedMeshEdgePt. If a mesh point is highlighted, then it is part of a "naked" triangle edge.



When exporting NURBS objects to .stl, Rhino converts the NURBS objects to polygon mesh objects. If Rhino cannot create a closed .stl file, the Export Incomplete Solids dialog box asks if you want to export anyway.

The tolerances you set in the Document Properties dialog box, Units page do not affect the .stl export tolerance. Instead, to control .stl accuracy, use the mesh tolerance settings from the Detailed Controls section of the mesh dialog that appears during .stl export. Set the Max distance edge to srf value to the .stl tolerance you desire.


Weld Polygon Meshes

  • Select the group of polygon meshes objects.

  • At the Angle tolerance prompt, enter a maximum angle between mesh polygon normals where welding of points should occur. If two naked mesh edge points of a selected mesh are coincident and their neighboring faces are within the angle tolerance of each other, they are replaced by a single mesh point. If the two points were from different "sub-meshes" of a joined mesh, the meshes become one mesh that cannot be exploded.

  • To perform a similar operation with control points, see the SetPt command. Welding polygon meshes affect rendering, texture mapping on mesh objects, and file export for stereolithography.


Unify Normals

UnifyMeshNormals is primarily for making sure the order of the vertices in all polygons in welded polygon meshes are the same.

  • Select a single unjoined mesh. The normals of all the faces of the mesh now point to one side of the mesh.


The UnifyMeshNormals command changes the direction of the surface normals of a mesh object so they all face the same direction. This command is useful for tidying up your mesh objects for export into 3D Studio.


To test if the mesh needs to be unified:

1) File menu: Properties
2) On the Render page, clear the Render Backfaces checkbox.

3) Render your mesh. If some of the faces that should render disappear, their normals are flipped.

4) Use UnifyMeshNormals to make them all match.



If UnifyMeshNormals does not seem to affect your mesh, explode it. Once the normals are correct, re-join the meshes.

A polygon can have two types of normals: vertex normals and a face normal. All polygons have a face normal direction, but many polygon meshes do not have vertex normals. For example, 3DFace object, all mesh primitives and all polygon meshes imported in formats other than 3DM and 3DS do not have vertex normals at all.


In general, the order of the vertices in a polygon determines the face normal direction. The order of the vertices should be either clockwise or counterclockwise. The normal direction is determined from the vertices using the right hand rule.


Select Naked Edge Points

The selected naked edge points command shows where polygon mesh vertices are not completely surrounded by faces. Joined meshes, such as are made by Mesh Box, have naked mesh edge points where the sub-meshes are joined.

To eliminate naked mesh edge points, move them to make them match in pairs, then weld them to make a single mesh that cannot be exploded. Edges that formerly rendered sharp will shade rounded, unless you use FlatShade.


Tools toolbar: Show and Select Naked Mesh Edge Points

Command line: SelNakedMeshEdgePt

Select polygon meshes for naked edge point search prompt, select polygon meshes and press Enter. Points at edges of polygon meshes are selected.

Definition of STL Errors


In an STL-file, the outside of a triangle is defined. It's important that the outside is defined correctly, if not, these flipped triangles must be inverted.

Bad edges: To have a correct STL-file, all edges of each triangle should be connected properly to a neighbor. If an edge is not connected properly, the edge is called a bad edge and is indicated with a yellow line. The green triangle has 1 bad edge, the 2 other edges have correct neighbors. A group of connected bad edges will make one bad contour.


Near Bad edges: It happens a lot that surfaces are not connected precisely to each other.


Inverted Normals (Flipped Triangles): In the STL-format, a normal is indicating the outside of a triangle. When the normal is pointing at the wrong direction (the inside) we call the triangle a flipped triangle.  A triangle is never connected correctly to another triangle if the normals are pointing the opposite way.


Good STL:  All Normals facing outwards or same direction.


Bad STL: With 1 inverted Normals facing opposite direction.



There are no triangles at the inside of the bad contour. A hole  triangles are missing. Use fill hole to fill it up with triangles.


How to recognize a hole?

You can see the inside geometry through the hole. You will see the other side of the partWhen taking a section through the hole, there's no line drawn in the holeIn triangle view, the triangles on the other side are not triangular. The marked triangle is not triangular


Intersecting triangles:

Intersecting triangles are triangles cutting each other. It can happen sometimes that the STL surface has intersections. Depending of the application of the STL-file, it's advised to remove the intersections.


Overlapping Triangles:

An STL-file has sometimes overlapping triangles.



A shell is a collection of triangles that are connected to each other. Normally a part has only one shell because every triangle of the part is (indirectly) connected to every other triangle.


Some shells are just noise and make no geometrical sense. It's easier to fix the part when they are removed in an early stage of fixing.

bottom of page