Surface Faceting

Hey everybody. Looking for some advice to eliminate surface faceting for a machined parts. I initially thought this was just an issue w/ the way rhino draws things on screen in shaded view, but i’m finding that this type of faceting actually translates through to machining. How can I avoid this in my build process? The basis for the model is a single sweep, which is then trimmed, placed into a bounding box and the surface offset 1/32" in all directions for CNC routing. The faceting is present in the initial sweep.

Thanks for any assistance.

srfFacets.3dm (788.9 KB)


the surface is a bit wavy judjing the edges :wink: …and has multiple knots. You might clean it up somewhat using _RemoveMultiknot and _FitSrf. Below surface was done using a tolerance value of 3 and i´ve slightly point edited it to reduce the deviation from its source. How much deviation is allowed ?

srfFitted.3dm (37.8 KB)

btw. compare with _Emap and set Max edge length to 0.1 in the dialog…


Yes, this one is quite wavy. It is a handrail for a staircase, so I’m bound to the Plan view curve, and a few other rules(mentioned later), but can deviate as necessary in elevation in order to get better surface quality.

Here is the base model that this blank was generated from(the red planar curve around the rail is the cut plane for the part in the previous model).

The bottom surface must always be parallel to the ground plane perpendicular to the sweep curve, and the sides must remain vertical on the plumb line. sweep and cross section curves are in blue. I swept this 1/2" wider than necessary, then wirecut w/ the plan curve in order to guarantee that the sides remain plumb. The plumb sides and level bottom are important for machining processes later on during production.

Any tips on producing a cleaner sweep from the get-go?

Thanks a bunch.full rail.3dm (502.9 KB)

Hm, you could try to build a smoother inside rail (dark green in my file) and match it to the magenta arrow. I got it from an edge of the surface build by Sweep1 with Roadlike=Top. I guess the flattening effect is fostered by the linear segment at the end of your current rail. (which runs outside) Running outside does truncate the surface at the inside.

If you have the slightly larger surface, it might be trimmed from top view so it still stays within the plan curves but only deviates in elevation. To get the plumb sides, i would just extrude them vertically then build the lower surface using sweep2.

full rail.3dm (436.2 KB)


Hi Adam,

If this faceting shows up in machineing, that mean the machine is using the rendermesh to machine correct?

Apart from tweaking the geometry, you will need to adjust meshing settings, yours is currently at jagged&faster.
I took a stab at the last file and came up with this:


And you can make custom meshes for individual parts. So, if you have a complicated design/drawing/thing, you can choose which parts look good for the sake of looks, and still have speed.

Or, you can work with coarse objects that still work fast on your computer, and then later export much finer meshes for machining, fem, 3D printing.I

In meshes more triangles/quads are better, but in curves, splines and NURBS less nodes are better.

no meshing, I’m machining directly off of the nurbs surfaces whith RhinoCAM.

The render mesh only affects how the surface is displayed in the GUI, and has no effect on the outcome of a finished product. If i were to convert the nurbs object into a Mesh, this number of surfaces in the mesh would be based off the _Mesh settings, and is unaffected by the render mesh settings as far as i know.

More or less triangles per mesh is a factor of what kind of result you’re after, a finer mesh (more triangles) in this instance would more closely follow the surface i’m trying to clean-up, but less triangles would give me a different set of faceting issues, i don’t think you can really say that one is better than the other in general.

Are you sure about that. As the link below shows it seems RhinoCam does use the rendermesh. But it’s not my field of expertise so I might be wrong.

I think the best way to find out is to set an extremely low quality faceted rendermesh and see how the toolpaths come out.


RhinoCAM used to use the render mesh and refining that instantly improved the machining. But in the latest versions I THINK that RhinCAM (RC) creates its own mesh on the fly for the toolpaths. I haven’t found much to definitively establish this, but I think that the mesh that RC uses may be related to the “intol” and “outtol” settings in the toolpath parameters.

Thanks for chiming in.
So the solution should be searched in RhinoCam than. @asbeastos, hailing you so you don’t miss this answer.


I can confirm that in the latest release, it is based on the intol/outtol settings.

The foundation of my problem though is that the base surface has ripples, so no matter what i do to any mesh, i’ll either get faceting, or ripples. A finer in/outtol will simply follow the rippled surface more closely, and a less refined mesh will introduce additional faceting.

How can I get rid of the ripples altogether? @clement. I did attempt to build off the interior curve initially, but then it translates the ripples to the outside curve, which is more visible in the finished product. I’ve also played around with extending the curves once they level out, and building the surface manually with no better result. A sweep2 results in a crowned surface which is also unacceptable…

Best way is to rebuild the geometry starting with smooth curves. How much deviation can be tolerated from the original curves? Attached is a file with the red curves redone using FitCrv with tolerance of 0.1. The results have many fewer control points, are smooth, and deviate from the original red curves by a maximum of 0.03 which is less than 1/32. Use CrvDeviation to compare curves and CurvatureGraph to look at the smoothness.
Curves DC.3dm (250.5 KB)

I´ve used Sweep1 with Roadlike=Top option. Have you seen the surface in my last file and trimmed it in top view using your plan curves ? It has no ripples over here and does not deviate from the plan curves, viewed from top…


Are you using a 5 axis machine? If not I would expect that the rippling is the inevitable result of the width of the bit relative to the angle of the cut, no? The surface of a wreath is not planar in any direction so there should be an expected amount of surface irregularity due to one side of the bit always being a bit off from the intended surface at any given point.

Or, I may be misunderstanding your problem.

After re-reading -
Sorry, my bad. I reread the initial post and realized you were referring to surface irregularity in the computer model, not the resulting surface after CNC routing. Ignore me, I haven’t had my minimum coffee quota yet today.

thanks, I still have some issues, but this has helped tremendoulsy.

yes, i’m slowly gaining ground by doing a combination of this and the process suggested by @davidcockey.

Also experiment with Fair and Smooth after FitCrv if the more fairing/smoothing is needed. Use small values for the parameters in Smooth and Fair such as 0.1, and be ready to back up if the curve is altered too much.

I did a test(very fine mesh, vs very course mesh regenerating paths for both), and confirmed that the render mesh has no effect on the RhinoCAM tool path, good thought though. My problem is happening before i get to the rhinoCAM phase, but i’m on my way towards an answer. thanks for your input.