Trim fails in Rhino, works in NX

Try to trim the blue surface with the red one in Rhino and see if you can get a result:

trim-fail2.3dm (1.8 MB)

Had to bring it over to Siemens NX to get it to work:

trim-fail2-nx-result.stp (2.6 MB)

I know McNeel people have said before that they’re proud of their accurate trims, but over the years I’ve used Rhino now, I think I can count on one hand where, for example, “extend trim curves” have worked, because that is zero (yes, unrelated to this, but I’m just a bit frustrated when it comes to trimming in Rhino).

sorry, but if you are too dumb to use rhino then why coming back here and bother us with your NX propaganda. also i would like to see how you trimmed that in whatever program, since the surfaces do not even intersect completely and not by some minor distances but due to some obvious interruptions.

I think you may have missed the STEP file I attached.

right, i apologize, i went out with my anger way too early. i intersected the 2 surfaces and that worked. then i saw the gaps and got a knot into my thinking process… sorry. i am not sure why it does not trim will have a look again.

1 Like

No worries, many posts to support forums like these are when you’re angry at a problem and need to vent a little bit, including most of my posts! You should see my posts on the NX forums! :smile:

1 Like

so, i assume the reason it does not trim is that there is nothing overlapping. when you increase the display mesh settings you see that the red surface exactly hits the edge of the blue one.

What you’re looking at is actually already successfully trimmed by Rhino. The issue is at the ends, and if you want to test further, just trim away everything that’s already been trimmed like so:

(Just in case, before I posted this I increased the file tolerance to 0.001 but that was not the issue either.)

Hi Robert -

I opened your 3dm file, ran SelBadObjects and that selected the object on the Roof layer. I didn’t look further…

Even after extracting the bad surface (shown below) and cutting away the “irrelevant” surfaces (as above) the trim unfortunately still fails:

Hello - splitting with the curves resulting from Intersect works, so it ought to work with the breps directly…I’ll get it on the pile.

Oh. @eobet, your file tolerance is .02 - I would not build things like this at .02, I’d use .001 at most.


The gray polysurface has faces with edges between 0.00004 and 0.00305 wide. If they are deleted and the adjacent short edges are merged or retrimmed so they are no longer short, the _Trim will succeed. I use a series of scripts to identify and fix such problems in imported data, including STEP files from NX.


trim-fail2_Partial-Success.3dm (401.7 KB)
trim-fail2-DotsAtSlivers.3dm (131.5 KB)


Many people argue Rhino’s trim or fillet failed while in cores, nx, and solidworks success. But these programs actually “cheat” you to believe the geometry is solid. You can use “joinedge” common in rhino to Ignore gap greater than tolerance.

autodesk alises is the software has accuracy equivalent to rhino. Other software you can just ignore “accuracy “ because you can’t even set tolerance in setting.

Besides the “tolerance” in document, there are other “tolerance” for computing. For example, intersection function had its own tolerance.


Two posts up, I did try to fiddle with the tolerance (it’s for a 3D print so that’s why I kept it loose, because I thought it would help).

Not sure where the 0.02 comes from honestly, because I’m fairly certain the STEP was exported with 0.01… however, just now I tried to open one of them and saw the document tolerance set to this:


So does Rhino automatically calculate the tolerance for what it managed to stitch together from the STEP file?

That’s interesting, and I guess that’s why Alias has a setting to avoid those “slivers” as @spb called them (the “short edge tolerance” in the “surface fillet control”), and why up until very recently, styled blends in NX was a single, massive iso span surface!

At the end of a STEP import, Rhino 7 reports STEP file Unit system and STEP file distance tolerance on the command line. (They are also reported by _StepUnitsAndTolerance .) This tolerance may not match the export and/or modeling tolerance of the exporting system. Unfortunately, by default this is the case for NX. Fortunately, this can be remedied by

  1. Setting NX’s STEP export B-spline tolerance to NX’s Distance tolerance before the STEP export.
  2. Setting _testSTEPImportToleranceOverride to the Distance tolerance before the import.