Why Mesh and Why Solids or surfaces?

Newbie question here. The more work I do for others the more I am seeing huge complicated Meshes. I would rather they be solids but me turning them into solids is just not working because they are so huge.

Why work with meshes? What can a mesh do that a solid does not?

Maybe I need to just learn all about meshes and see how I can work with them. I need to make parts that will be cnc cut to interface and connect to the mesh drawings. Are there any little tutorials or something that can get me up to speed on what I can do and can not do with meshes? There must be a good reason there are so many I run into. And I see all over the web, people trying like mad to get them turned into something else. So there must be a good reason for that as well. Thanks in advance for your advise!

I used to ask myself the same question and over time I have come to the conclusion that if you are serious about doing real work with something physical (routering, milling, laser cutting, etc.) then it must be a solid. I’m an engine guy and the internet is full of meshes of pretty looking engines but they are useless and can’t realistically be manufactured. For me they are nothing more than pretty jpegs in 3D. Don’t get me wrong as there are some rendered meshes that are truly works of art but for the real world… forget it. Most of the people that give you a mesh and expect you to turn it into something real don’t know how to draw in a CAD package. Another matter altogether is 3D scanning and printing where by necessity things are captured or made using meshes. Re surfaces, think of a car fender or an aircraft wing. It’s well less than a millimeter thick so its overall shape is more important than its thickness. In a lot of cases, turning that surface into a solid by offsetting the surface by say 0.5mm isn’t necessary for manufacturing (to cut a die or mould for example) and just adds greatly to file size.

This is just my take on things but others may have a different opinion.

Yeah. Stupid Meshes. I will try and understand them more and they may be useful as saved smaller files of a detailed more intricate “parts” to be used or “viewed” in the space of a larger model. I have cameras that have every single dang screw thread and everything modeled as a solid and I just need to show the camera. One other suggested on this site to save it as a mesh with another name to use in the bigger model. With all them solids modeled to the max I can not move around and show the model of the plane everything goes in.

When you export a model for manufacture it ultimately ends up as a mesh. Check out the export as STL command in Rhino and up pops a box where you need to deal with mesh size. Perhaps you been receiving solid files that have gone thru export. Just a thought.


That’s only true in some cases, such as 3D printing. Meshes are extremely useful in some cases and not in others.


Solids and surfaces are parametric representations and are resolution independent. You can turn a 10mm sphere into a 100m sphere and they’ll be both as smooth.

A mesh has a finite number of points and lines and will show as jagged when you scale it up.

The same as with raster and vector on 2D illustration.

You’d prefer working with vectors all the way until you reach the print shop. Then it will be converted to raster format of resolution compatible with your printer.

1 Like

Just curious. When (or for what file formats for manufacture) is this not true?


The exchange formats STEP, IGES, Parasolid, and SAT (ACIS) are all surface/volume formats and not mesh formats. DWG can also contain ACIS surfaces/solids.


I read your question as pertaining to the very last step before manufacturing - right before some program makes g-code out of it and sends it to the machine. I know little about that myself and am curious as well. At least in the past, the machining software made a mesh from the 3D geometry and wrote g-code based on that mesh. From what I’ve heard, they can now write g-code directly from the NURBS. Does anyone know more about this?

That’s still mostly true for 3D surface machining as far as I know. One of the principal reasons for this is that the toolpath which the cutter centerline follows is actually created on an offset of the object’s surface (by the tool radius). In anything but the simplest of cases, meshes are far easier to offset and clean up than Breps, especially concerning overlaps and self intersections.

The difference between sending surface/volume formats and mesh formats for CAM is that with surface/volume formats, the CAM software creates the mesh it needs on the fly, with the fineness that is determined by the toolpath parameters. As Ricardo mentioned, surface models are “resolution independent”, the CAM software can decide how fine to mesh the model for a particular operation, and each operation can be different. With a mesh model, your facet size is fixed. Period.

Also don’t forget planar and 2D operations, which are still a huge part of manufacturing. In those cases the toolpaths are created from vector data such as the edge curves of of the objects. For things such as radii and holes, that will mean that the machine can use circular interpolation and will cut as exactly as its motor/control system will allow. With a mesh model, radii will always be faceted.


1 Like

Thanks for the great info Mitch. Would I be correct in saying that currently all additive printers need mesh information? Do any of them use vector data and make a mesh on the fly as you described?


More or less. 3D printers work by slicing the model and printing 2D slice by 2D slice, one on top of the other. Most of the machine printer software is designed to take a mesh file - an .stl or other - and slice it, resulting in a series of closed polylines, which the software interprets as areas to fill, and outputs toolpaths to the printer to fill them.

However, some systems let you have a “back door” and send in just the slice data from an already sliced model in the form of an .slc “slice file”. SLC files are also just composed of polylines - none of this stuff understands NURBS. But you can output SLC files directly from Rhino and input them into systems that accept them. In that way you can actually avoid the mesh step, you have the option to slice the NURBS object directly. If the resulting slices are splines, they do need to be tessellated into polylines for output however. I guess this might be vaguely considered “additive manufacturing from vector data…”


Actually making the part is fine with a mesh. (machining, 3d printing. etc)

But trying to easily alter a mesh or use a mesh along side other solid parts is proving to be a pain.
My main model (fuse of an aircraft) is a mesh or polysurface… It is simply too large for me to make it into a solid. In particular the rear half where all the curves are. I wish so much I could turn it into a nurbs surface!!

I have tried all the reduce mesh commands and all kinds of transform stuff it will not work until the model has lost way too much detail. Need to fix the dang meshes first also. There are many meshes that make up the fuse and they are all a mess…

I have been using my laptop to run Rhino.

I need to order up a desktop workstation so I have more horsepower and then maybe I can get this converted with enough resolution.

I will have to check on this forum to see where I should spend my money. I want to keep the computer under 2K and put all the money to memory and a graphics card and the right processor to maximize Rhino capability. I do not render much at this point but do work on some very detailed complicated parts and systems. If anyone has a good thread to look at or good specifications please point me in the right direction!

I am thinking solid state drive (have that on my laptop) as much RAM as I can afford, and 8Gig memory on a Gforce Quadro. Besides that, I am not sure what is best for the CPU…off to research that!
Thanks for all the dialog on this topic. Lord knows I need to learn all about lots of stuff!
Happy Thanksgiving!

Revers engineering a mesh into a NURBS model is not a trivial task.
You could probably extract points from the mesh and fit curves through these. Then use the curves to make surfaces.

You might want to read this paper / tutorial: Scan, Cleanup, and Remodel

There are a few plug-ins that can be used to help in the conversion and most of them will have a free trial.
Here is one of those (never used this myself): RhinoResurf

Further reading: