Using a mesh as a reference inside Rhino

Calling all mesh experts.

I’m doing a job at the moment where I’m going to design and build some engine parts that have to clear other parts of the engine sufficiently and also mate with other points on the engine. I would like to import a rendered mesh of the engine into Rhino to use as a reference for where those parts go and build my parts around the mesh. I have previously done this exact thing in SolidWorks but I much prefer working with Rhino.
Most people that import meshes use those meshes to build surfaces and therefore are probably not too interested in how the mesh is rendered or looks (i.e. it’s appearance on screen) whereas in my case I need to be able to see it clearly to use it as a 3D reference inside Rhino.

I’ve attached 2 jpeg screen shots for reference. The jpeg is how the mesh looks in Rhino and as you can see it’s difficult to distinguish any features even though I tried to change the transparency and colour etc. The png file is a screen shot of the file that mesh came from and how I would like it to look in Rhino to use as a reference. It looks just like that in SolidWorks (Scan to 3D) as well but I’d prefer to continue in Rhino if possible. Anyone got any ideas? I’ve tried importing as OBJ and STL but the result was much the same.
Thanks in advance.

Hi @Phillip_McIntosh,

the difference in your pictures is just a display option. The PNG image is showing the mesh shaded without mesh edes, the JPG is showing the mesh shaded with mesh edges. You can control this for every Rhino display mode, eg. for “Shaded” display mode it can be done under:

Rhino Options / View / Display Modes / Shaded / Visibility / Show mesh wires

alternatively, you can change this same setting for the current viewport in the display tab.

You may also put the motor mesh on a single layer so you can show/hide and lock it with a single click. Personally i have created a seperate display mode for meshes to re-engineer which i apply to the mesh using _SetObjectDisplayMode. This way i can work in whatever displaymode i like to but keep the mesh in that seperate display mode (which does not show mesh edges).

Visually It does not make a large difference if you import as stl or obj file, however, the geometry in a stl file is usually imported as a facetted mesh (each triangle has its own vertices) whereas obj format can feature triangles which share vertices on adjacent mesh faces. The latter (obj) is better suited for your task, to extract and reverse engineer parts from the mesh. For both formats you need to take care if the mesh has naked edges which prevents some mesh commands explained below to work as expected. You can check for naked edges using the _ShowEdges command. To get rid of some of them or create new naked edges, check out the help file for the commands _Weld, _WeldEdge, _UnweldEdge and _Unweld.

After preparing the mesh for reverse engineering, the process usually starts with “segmentation”, which means you extract mesh parts like cylinders, planes etc. to get a reference to model new parts or to remake existing parts using clean nurbs surfaces as close as possible to your reference mesh. The segmentation can be done manually, eg. to extract a planar area of the motor, try out the command _ExtractConnectedMeshFaces, then click on a planar mesh area. Changing the angle in the upcoming dialog allows you to selected surrounding faces around the face you´ve clicked on. Once the planar area has been seperated, you can extract points from it using _ExtractPt and build a planar nurbs surface using _PlaneThroughPt. You may extract border edges using _DupBorder end rebuild clean curves from them. The whole process works similar as in ScanTo3D, it can be tedious and speed up for mechanical parts using plugins like MeshToSurface. However, many of the required tools are available in plain Rhino.

For freeform surfaces, the reverse engineering process can be even harder. You can work with Rhino only by extracting _Section and _Contour curves from the mesh or mesh parts, projecting curves on the mesh and rebuilding polylines to curves and manually creating clean surfaces from these curves. Such a task requires a lot of experience with Rhino’s surfacing commands. There are plugins to assist in reverse engineering of freeform surfaces, eg. RhinoReverse or Resurf3D.

You will learn most, if you try it without plugins though. Many of the plugin features can be derived from regular rhino commands. Eg, to reverse engineer a cylindric surface, extract the mesh faces, create a section using a plane cut then from the generated polyline extract the points and build a circle using _Circle _FitPoints. If you´ve used ScanTo3D in Solidworks, you are used to this process. Keep in mind that measing and rescaling to even (human) numbers is often required as the reverse engineering process of course involves tolerances and deviation from the source scan.

To measure the tolerances between your scanned mesh and reverse engineered surfaces and polysurfaces, check out the command _PointDeviation, it accepts meshes instead of points.

good luck :wink:


1 Like

Wow Clement, you really know your stuff when it comes to meshes. Do you have a scanner yourself? If so what type? The reason I ask is that I thought I remember a Clement on the David Scanner forums… I have an Artec Eva. I would like to learn to make nurbs surfaces from meshes in the future but at this stage it’s good enough to just use them as references. I just tried what you said and 1 click and now I have a perfect image. I would have taken a month to find that and probably messed up some things along the way.
Thanks again.

Thanks Phillip. I´m not the one on the David forum, but i´ve used the SLS scanner, Romer and MicroScribe digitizers, Kreon / Skiron, GOM and HDI scanners in the past. Usually i get data from all kinds of laser and structured light scanners. Handling the data is almost the same, regardless of the device used. One difference is density and therefore accuracy of the data.

Our teachng device is a MicroScan mounted on a MicroScribe G2LX. For plain digitizing we use a GLX. Its a bit old but still a robust combination. Nowadays, you do not really need an expensive device to generate a rough scan, even a Kinect or iPhone can aquire data. The outcome, depending on the bundled software to build and clean up the meshes, varies though. :smiley:


thats where I am right now, trying to get started, wishing to see such a model to work over, Knowing of what tools to use etc. see your PM just sent.