Can't get rid of micro edge

Anyone got any tips on what to do here? RemoveAllNakedMicroEdges won’t work, and I’ve even increased the scale by 1000 and hand massaged some CVs to snap them into the corner, but it doesn’t help.

annoying-micro-gap.3dm (99.0 KB)

Your units are set to 0.01

I’d change that to 0.001

I untrimmed the surfaces next to your fillet and joined them before creating the 0.3 mm fillet. I exploded the polysurface, untrimmed the fillet surface and trimmedd it with the eddge of the original fillet.

annoying-micro-gap.3dm (110.5 KB)

1 Like

This script will remove the micro edges, either before or after joining the surfaces.


to get a precise “pointy fillet”
use setPt for the target point to get a precise corner / collapsed surface edge.
for this workflow it is not nescessary to adapt the document absolut tolerance.

but for the level of detail-size you re targeting i would do it - and _filletSrf will build a proper pointy fillet (hopefully).

annoying-micro-gap_tp.3dm (3.0 MB)

1 Like

Oh, wow! Since these are imported surfaces from a software which actually knows how to fillet, and since Rhino notoriously sucks at it, I’d never would have thought of attempting to re-create the fillet in Rhino! :sweat_smile: Thank you for that.

Thanks! I have to do a RebuildEdges on the result because a part of a surface disappears but it seems to work… I wish the community wouldn’t have to step in every time McNeel thinks a feature is done on paper and decides to not improve it for a couple of decades…

This tip I must admit I didn’t fully understand. As mentioned, I had already snapped the control points to the corner…

1 Like

Here’s another example from the same model the script wasn’t able to handle:

annoying-micro-edge-2.3dm (97.4 KB)

And hilariously, using @martinsiegrist suggestion of actually recreating the fillet generates a “bad object”. :see_no_evil:

(Again, after snapping a CV and manually duplicating some edges, a re-trim and sew did remove the gap, but boy did it waste 20 minutes of my time I could have spent elsewhere!)

1 Like


annoying-micro-edge-2.3dm (135.1 KB)

@eobet the first example shows you are using a too loose tolerance for the detail. In the second example the edge of that pointy fillet is a trimmed surface.
I really wonder how you are modeling these things. Are you doing a lot of back and forth between programs, if so, I’d like to see a filleted object source object that you use as starting object in Rhino and do a proper surface inspection on those.

1 Like

This time, the model’s absolute tolerance was set to 0.001, but the naked edge is 0.0021 long. My script has the option, MaxEdgeLengthToRemove, that when set to at least 0.0021, will remove the naked edge.

Also, if the model’s tolerance is set high enough, _RemoveAllNakedMicroEdges also works.

If this data is coming from NX, and NX’s modeling tolerance is the default, 0.01 mm, I recommend keeping/setting Rhino’s model’s tolerance the same.

Yes. I only use Rhino at work to fix up models which have some sort of problem basically.

We actually upped NX tolerances to 0.001 for where I work (except GRP parts). The only reason it was at 0.01 in the first example is because I was experimenting with tolerances. In the end, 0.001 worked best for this model, which is just as best because the people involved in this project use Solidworks.

can you be more specific? Since you are doing back and forth between programs the problems you are reporting here might as well be not Rhino’s.

Well, since neither Solidworks or NX (and I’ve imported this model into both) have any issues with micro edges I’d still like to say so. :wink:

And yes, I know the technical arguments, but when you’re in “get it done” mode, as a user you really don’t want to have to care.

I like to move forward with this case, but I don’t have the full set of information. I question if the issues are Rhino’s, because I cannot tell. You are exporting models to Rhino because they have issues you apparently cannot solve in those other programs, is that correct? So again, what are those issues. I’m afraid the bad objects you have here will not reveal the source of the issues (apart from the join bug and pointy fillet bug I mentioned)

FWIW I was trying out another application, which is using parasolid kernel as well the other day, and imported the model back to Rhino. The fillets that were made were far from tangent. I’m curious to see if models you are working with exhibit the same kind of issues.

Well, this particular project started getting designed in Catia, then engineered by several different people in Solidworks all seemingly in a great hurry to the point that the mess they made could no longer be boolean unioned. That’s where I stepped in. Also, there were several previous boolean operations made which left ugly small sliver surfaces, undercuts and even overlapping surfaces (which neither SW/NX complained about for some weird reason), all of which I exploded, re-trimmed and re-joined. Oh, and I also removed some fillets and then took the model into NX temporarily to re-add them (because of course Rhino failed to do them). In that process I had to battle quite a bit of micro-edges and “bad objects”, but I got it done and the model today has neither.

I’m guessing you tried Plasticity? Yeah, as noted here, Parasolid cheats with fillets up until you export it, then depending on your export settings they become more or less accurate (default NX settings, for example are horrible, while inside of NX the analytics say that everything is fine… also, NX has its own built in CNC application which will take those paths and do clean g-code for it, so who cares about tangency at that point).

Also, regarding RemoveAllNakedMicroEdges and RebuildEdges… NX has something called “optimize” which does something similar, but also replaces any sufficiently flat surface with their representation of planes, lines and so on and any sufficiently round blend with their representation of fillets, arcs etc etc. and it works very well (and then enables their “synchronous modeling” tools even if the model comes from Rhino, for example). Again, though both are very different CAD packages, I guess I’d just like a little more of the A (aid) in Rhino. :wink:

(You may also ask why did I not just use NX for this then? Frankly, their viewport navigation is so utterly steaming pile of manure bad that the simple act of rotating around and getting into the crevices of a complex model like this would have made it take 10x longer in the end. Can you imagine that their default zoom behavior is a dolly zoom?) :see_no_evil:

Thanks for the detailed reply, those applications are indeed great… as long as they work. If they stop working they leave you sort of empty handed. In Rhino, on the other hand, there is always a way out, but yes, it sometimes requires a bit more effort and you need to keep working neatly,
My way of working is to stay away from joining a model until all is within tolerance. If you join up stuff too early in the process and you continue working off and matching to the modified edges after join, it’s easy to run into these issues eventually.
Since you are bringing in models from another application, for the very fact that they stopped working there, you know something is wrong and needs fixing. Naked edges and bad objects are clear indicators, but nothing more than that. I have some ideas where we might improve giving the user a bit more guidance to find and solve these issues. Rhino 8 and next 7SR should give you less of these issues due to mentioned fix in Join.


You are very right about the camera navigation! I praised Rhino’s unmatched capabilities for camera navigation many times in the past, and will never stop to do it. :smiling_face_with_three_hearts: It’s one of the main reasons why I chose to use Rhino over any other CAD program, despite its weakness related to “Fillet”, “Blend surface”, “Match surface”, “Patch” and a few other tools. Being able to go though really tight areas to observe the geometry up-close is priceless, especially with the great support for 3d mouse!

1 Like