Updated 24/03: Click here to read about Sculpteo's actions regarding the ongoing COVID-19 crisis

Manage and export valid 3D files for 3D printing from Rhinoceros


  • 1.1. Before starting to model
  • 1.2. Proper 3D modelling for 3D print
  • 1.3. Color and textures for full color printing
  • 2.1. 3D model analysis
  • 2.2. Fix NURBS 3D model
  • 2.3. Create and export a mesh
  • 2.4. Correct mesh for 3D printing
  • 2.5. Mesh analysis
  • 3.1. Mesh reduce
  • 3.2. Mesh orientation unification
  • 3.3. Mesh hole fill
  • 3.4. Non manifold errors
  • 3.5. Multishell parts

When 3D modelling for 3D printing, it is essential to constantly verify the cohesion between your model and the tools in order to build a polysurface objects. Below, you will see the verification tools that will help to identify the model errors during the 3D modelling NURBs phase.


Open polysurfaces detection

The simplest way to identify an open polysurface is with the “Select Open Polysurfaces” tool Rhino select open polysurfaces tool. You can find it in the toolbar under the drop down menu ‘Analyse Direction/ Show edges/ Select Open Polysurfaces’ or you can just type “SelOpenPolysrf” in the command line.

Rhino select open polysurfaces 

When an object is made of an open polysurface, it will light up as a selection the while the other part will stay intact because it is a regular surface.

Rhino polysurface object
If the model stays closed, you will see “No objects added to selection” in the command line.

Rhino model is closed

By doing this, you can find out which object is made of an open polysurface. If you have a file with many different models you will be able to isolate it more easily with the “invert selection and hide objects” tool in the ‘Standard menu tab/ Hide objects/ Invert selection and hide objects’ section.

Rhino invert selection and hide objects tool

Rhino invert selection and hide objects

Rhino invert selection and hide objects

Once you have the isolated object you can proceed to do the naked edges detection.


Edge analysis for naked edges

The edge analysis tool will help you detect where and if a polysurface is open. You can find this tool in the main menu bar at ‘Analyse Direction/ Show Edges’ which will open up a new smaller box where you need to choose the object to be analysed. You can also open this tool by typing ”ShowEdges in the command line.

Rhino show edges

This command will light up the open contour according to the selection color in the edge analysis box.

Rhino edge analysis


Bad geometry

The “select bad objects” tool Rhino select open polysurfaces tool allows you to find where the bad objects are. You can access it in the main bar ‘Analyze direction/ Select Bad Objects’ or by typing in the command line: “SelBadObjects”.

Rhino select bad objects

To have more detailed information about a bad object, you can run a diagnostic using “Check objects” Rhino check objects available in the main menu under ‘Check objects’. A popup window will give you more information about the model e.g. if there is any bad geometry or “Rhino polysurfaceobject is valid” meaning there is no bad geometry.

Rhino check objects

Rhino polysurface object is valid

You can select the model and go to properties in the right column to select details Rhino select details at the end of the colum. It will give you of general information about the model along whith the geometry information.

Rhino geometry information

Repair naked edges

After finding the naked edges, you can fix them with a join operation Rhino join operation. You can then join the detached surface to the main body of the model and close the object.

Rhino geometry information

However, sometimes there are missing surfaces. In this case, the best method to solve the problem is to create a new surface that will be in perfect contact with the surrounding surfaces edges; use join to create a closed polysurface.

When the surface edges are more distant to each other than what your Rhino file tolerance allows -for example when 2 surface edges are 0.1 mm apart and Rhino tolerance is 0.001- the join command won’t work. This type of naked edge can be fixed by using a forced union. If precision 3D modeling is not important for the 3D modeling work, this could be a quick fix operation. It allows Rhino to join the edges without taking the minimal tolerance into account.

Rhino join the edges

You can find the forced union tool under ‘Surface menu/ Edge Tools/ Join 2 naked edges’ or by typing “JoingEdge” into the command line.

Rhino join 2 naked edges

Rhino join 2 naked edges

Rhino join 2 naked edges

This is a quick solution, not the best one, but it is better to have a clean closed polysurfacemodel. Do note, the Join Edges operation may not work if you are exporting the solid as an IGES or STEP file (to then be used for purposes other than 3D printing).


Fixing bad geometry

As was mentioned in the valid objects section, bad geometry is mostly generated from bad surfaces due to an error that occurs during the adjusting of the trim curve.

Usually, bad surfaces are fixed by making the model explode and then rejoining it. If this does not fix the model, it is because there are complicated NURBs problems in the structure. You can try to fix them with the following tool operations:

  • First of all, identify the bad surfaces and hide everything else temporarily. You can separate the bad surfaces from the polysurface using “Bad Surfaces Extract” by typing “ExtractBadSrf” in the command line .
  • Once you have the bad surfaces isolated, proceed to restore the edges of the surfaces to their original state before they were joined – with the command “Rebuild Edges”. You can find this in the main menu ‘Fillet Surface/ Rebuild Edges’ Rhino rebuild edges or typing in the command bar “RebuildEdges”. This operation will detach the surfaces so you can rejoin them again. In some cases, this might work. After this operation, you should check if the surfaces are repaired or if there are at least some of them fixed.
  • If the surfaces were not completely fixed, you can select a bad surface and remove the trimming boundary from a surface using the command “Untrim”Rhino untrim followed by “keep trim objects”. This is available in the main menu ‘Fillet surface/ Untrim’ or typing in the command bar “Untrim”. Select the trim curve and trim Rhino rebuild edges  it again. Then check if the surface is no longer a bad surface. You should apply the same operation to the other bad surfaces.
  • For the last part, try to unhide everything and make them all join up again. Check for bad geometry with “Check objects Rhino check objects. If this does not work, it is usually because the join operation is trying to force things together that do not fit correctly. If so, it is recommended to find the bad surfaces and analyse the union with the contiguous surfaces.

Multiple solids model

As explained before, in the “proper 3D modelling for 3D printing” section, your model or part should be made out of one single solid or closed polysurface. If this is not the case, you can select both solids and make one single solid using the tool “boolean union” Rhino boolean union. This will fuse the two solids into a single one. You can find this tool in the left bar or under ‘Solid/ Union’.

As Rhino use a NURBs approach for 3D modelling, you must produce a mesh in order to create a 3D print file. You can export the Rhino model as .STL (stéréolithographie) from ‘File/ Export Selected’ and save it to create a 3D print file.

Rhino export

For obtaining optimal results, it is recommended to have a better understanding and control of the mesh creation settings before you start exporting. You can create a mesh without exporting the solid by using the command “Mesh” Rhino mesh – located in the main left command bar – or by typing in the command line “Mesh”. Right away a popup window will show with the “Polygon Mesh Options” along with some simple controls. In order to have more control over the mesh, you will have to switch and set “Detailed Controls”. These controls will allow you to set up the density and quantity of the mesh. Next, you will see some tips to create the mesh that best suits your needs.

Rhino polygon mesh options

Rhino detailed controls


Tolerance for mesh creation

A mesh is composed of many faces that actually make up your model. The quantity of the faces depends on the mesh density. A model with few faces will look faceted or it will have a low polygon appearance. A model with many faces will look smooth and have a high polygon appearance. The more faces, the smoother your model will look but be careful because an exaggerated number of polygons could turn your 3D model in an oversized file, making it more difficult to handle.

Rhino high polygon appearance

Rhino low polygon appearance

A good 3D print mesh looks nearly black. The polygons distribution is organized and balanced within the model. A good example is the high polygon picture displayed above.

Also, the polygons quantity must be conforming to the model size. For example: an object of 30 mm × 30mm × 70 mm will be printed with an optimal surface if you use between 500.000 and 600.000 polygons and smaller objects like jewelry (rings, earrings or pendants) use something close to 150.000 polygons for an optimal surface.

The recommended values in a general way to set up the tolerance for small objects for 3D printing are the following.

  • Density: 0.0
  • Maximum angle: 0.0
  • Maximum aspect ratio: 0.0
  • Minimum edge length: 0.0
  • Maximum edge length: 0.0
  • Maximum distance edge to surface: “The same as the tolerance file” (tolerance settings)
  • Maximum edge length: 0.0
  • Minimum initial grid quads: “Variable depending on how the mesh looks”

The minimum initial grid is a variable value depending on your model. This number will help us to define the number of quadrangles per surface in the initial mesh grid. Namely, the polygons quantity on each surface. Bigger values result in slower meshing, more accurate meshes and a higher polygon count with more evenly distributed polygons. For example a minimum initial grids of 100 produces a mesh almost black and with a certain uniformity in the sides of the model, however the “S” interior is not really uniform and it have many peaks and triangles creating a messy mesh. Instead, if you use a 7000 value the mesh will be more homogeneous and organized. That is why the minimum initial grids is variable depending on your model.

Rhino messy mesh

Rhino mesh

After the mesh creation, you can separate the solid from the mesh and you will be able to check the number of polygons in the object. In order to this, select the mesh and use the right column properties tab by clicking in the bottom “Details”. You will the following within the mesh’s general information: “closed polygons mesh and the number of polygons that compose the mesh”. 

For example, in the model displayed below there is mesh with 8000 minimum initial grids that have 151667 polygons. This is a reasonable mesh for a model with this small size like jewelry objects (rings, earrings or pendants).

Rhino mesh

Rhino mesh

Finally, the model is ready to be exported. Under ‘File/ Export selected’, choose the file emplacement and after that there will be an ending window. Make sure you uncheck the option “export open objects” and leave Binary selected then click ok.


Similarly to NURBs 3D modeling software, a 3D printing mesh model is different from a mesh model that is not intended for 3D priting such as for rendering or animation. In the previous sections, you have seen how to create a proper 3D NURBs model in order to avoid issues during a 3D print but sometimes your mesh could still have some errors. That is why it is important to know what kind of errors can arise in a mesh. In the following section a low polygon model will be used as the example to illustrate the problems.


Closed and compact mesh

Like polysurfaces, meshes must not be open to be 3D printable. The mesh must be composed for multiple faces that build a closed volume and it must not have holes. This means that the mesh must also be “watertight”.

The mesh object must be compact meaning no vertices, edges or faces around the main model. All the pieces that make up the model should have a volume, there can’t be faces without any mass.


Manifold mesh

A 3D printable mesh is a correctly manifolded mesh. The term manifold defines a mesh in which all its triangular edges are directly and individually connected to one another creating a closed volume.

Non-manifold errors are generally produced by the following reasons:

  • Several faces share one edge
  • Several faces share the same point or vertex
  • There are some unnecessary faces intersecting the main body of the model or at the interior of the model

Coherent mesh orientation

The faces that compose the mesh may not have the same normal orientation. That means that while one face has a normal direction to the exterior, its neighbouring face can have a normal direction towards the interior.


One single shell

Every part that makes up your digital model needs to be made out of just one shell. When you select a single part of your model, you usually should see in the command line “1 mesh added to selection” this means your part is made of only one shell.

The mesh analysis tools could be really helpful to check – your already exported STL from Rhino – if you want to confirm that everything is right with it or if you have a model that needs to be checked and repaired.


Open mesh detection

The detection of an open mesh can be done with the command “select open meshes Rhino select open mesh. It is located in the top bar in the tab “select” ‘Select Meshes/ Select open meshes’ or by typing in the command line “SelOpenMesh”. The open mesh will light up if it is open. 
Rhino select open meshes

Rhino select open meshes

If the model is closed you will see “No objects added to selection” in the command line. This process lets you find out which meshes are open. Once you have the isolated the object, you can proceed to do the naked edges or non-manifold detection.


Non manifold edges analysis

The edges analysis tool will help you to find out if there are non-manifold errors. The operating mode is exactly the same as the naked edges for polysurfaces. The difference is that you will have to switch from the naked edges case to the non-manifold edges case.

You can fiind the tool that will help you in the main menu bar mentioning ”Analyse Direction/ Show edges”. This will make a new small box pop up where you choose the object to be analysed. You can also open this tool by typing in the command line “ShowEdges”.

It is recommended to use the tool with the volume displayed in wireframe Rhino volume displayed in wireframe, this will make it easier to find manifold errors in the interior of the object. The naked edge or manifold error will light up the problematic face or edge.

Rhino non manifold edges analysis


Mesh orientation analysis

It is easier to identify the faces (with a normal direction) that present a problem if after running a naked edges test – you can still see a hole in a shaded display mode when your mesh is completely closed and there are no naked edges. This means that the face that lookslike a hole may exist, but the normal direction is inverted so the light is not reflected in the render.

Rhino non manifold edges analysis

Another way you can see more on the normals directions, is by using the “Analyze direction” Rhino analyze direction tool. All directions should be oriented to the exterior of the model. This tool allows you to also flip the normal direction but it won’t unify the object.

Rhino mesh orientation analysis


Mesh verification

You can check if your final mesh is a 3D printable mesh by running a diagnostic check using the “Check objects” Rhino check objects tool that is available under the main menu. A popup window will give you more information about the model if there is any problem with it  – or it will say “This is a good mesh”. You can read the description and see if there are no more errors that were mentioned before.

Rhino mesh verification