Tips for Users of Rhinoceros® for Creating Models 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 these 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, 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, 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:

  • File menu: Properties
  • On the Render page, clear the Render Backfaces checkbox.
  • Render your mesh. If some of the faces that should render disappear, their normals are flipped. 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.

  • .stl 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.