IGES Export Issues

My object in Rhino is a joined, valid polysurface with 1 naked edge representing the border of the open polysurface. Why after exporting to IGES would it begin determining there are bad objects in the scene?

I also find, even though my default tolerance in Rhino is 0.01, that the IGES file I open is by default in a tolerance of 0.001, even after specifying 0.01 as the IGES tolerance. My workaround is opening a doc with 0.01 tolerance then importing instead. The IGES I open always breaks apart the polysurface, and then creates bad objects when I join it up again. (Due to the bad objects present and the tolerance I suppose).

I think some of my problems are originating from these types of surfaces.

Whilst working I would find such things hard to spot amongst a large file - is there anyway to detect something other than visually? I’ve been misled from ShowEdges and Check telling me that everything is okay. I found RebuildEdges trimmed the surface back to where it should be to expose the gap that exists.

The file is confidential, but there’s something missing in my steps and process that I want to learn from. I appreciate maybe it’s not as simple to say that a good polysurface in Rhino is necessarily a good IGES file, but if so then I need to be able to know where I may be getting false readings/feedback.

Hello - how are you getting from the state in the second image to the state shown in the first image?


Hi Pascal,

Apologies - edited to show the corrected chronological order of what I was doing.

Hi Jonathan - it looks to me like you are forcing out-of-tolerance edges to join using JoinEdge - is that correct? (It’s a bad idea)


Actually I haven’t, as much as I would like for it to have been the case for the solution. Could it be the result of using refit options in Sweep commands? Or exploding something too many times?

I’m getting better at detecting these kind of things now, but this one was pure luck really. Especially given that it was passing through all the checks until IGES export.

Hi Joinathan - is just Join and not JoinEdge getting you from here:


to here:



If so, your tolerances are much too large for the scale at which you are working.


No - see that’s the mysterious thing. Here’s just the part in question. It seems odd that it was ever considered as something that could be joined.

odd-iges.3dm (139.0 KB)

Join-athan :smile:

Perhaps the moral of the story is, try an IGES export for important work, and use that to get a really good verification of surface correctness? That object was originally modelled at tolerance of 0.01mm. I know it’s talking about pure fantasy because I don’t recall the exact tool I used - the neighbouring surfaces were from filletsrf, then it was probably a sweep2 to tidy up the corner.

But, where was this made? In Rhino? If you Explode and then RebuildEdges on all the bits, you’ll see how things are more clearly - there is a part of the process that I’m missing. It is easy enough to fix this but how did it get to this state, is the question I have.

Here’s a clean one…

odd_iges_pg.igs (198.6 KB)


All made in Rhino. No idea how it got to that state - maybe I need to dig more.

What would your thoughts be on the original point, about IGES tolerance export? Whereby I export at a tolernce of 0.01, but then this opens up in Rhino in a document of tolerance 0.001?

Hi Jonathan - I see that the tolerance that is set in the export dialog box is not used as the document tolerance when the IGES file is opened in Rhino. I’m not sure which tolerance is used to stitch surfaces together and made RH-54303 for the developer to take a look at.

Thanks Wim. Is it really possible I’m the first person to have stumbled upon this? :astonished: It’s peculiar too for me, because my default document tolerance (template file) is at 0.01mm too anyway, so there’s something very conscious going on to open at 0.001.

I guess the important thing is, does anything ‘change’ in my objects when they are opened up in a Rhino of incorrect tolerance? The more meta question would be how tolerance actually affects the objects makeup - or is tolerance better described as a background process/recipe for joining/construction? So nothing changes object wise, but joining may no longer work. Polysurfaces as part of the IGES export are exploded/broken into surfaces again, of course.

Is Rhino not considered as something good to fix/repair IGES in? I like to double check before I send over to guys using PowerShape downstream. But I suppose there are also as many standards of IGES as you can shake a stick at?

At least the first one to report it. The IGES file format is not all that popular because it leaves surfaces unjoined. One does not tend to round-trip IGES files out of and back into Rhino. How other applications deal with IGES files that are generated in Rhino, I don’t know.

I don’t know. I see that I incorrectly wrote about tolerance being used to stitch surfaces together. The correct question is which tolerance is used to define the surfaces and trim curves - @tim would know more about this.

What would be a more popular exchange format for NURBS these days? I mean, I’ve never had complaints, so presumably stuff has gone down okay. I actually don’t have any CAD modellers installed to be able to check with.

Okay - gotcha.

I’ve pretty much always used STEP myself.

Hi Jonathan - was the 3dm file you posted above the original from Rhino or was it the result of importing an iges file that you’d written out from the original?

I’m trying to understand if the problem is really in the original model or is generated in the iges exchange.


Apologies pascal; yes this was all created in rhino originally too.

Jonathan Hutchinson

Hi Jonathan - so, if I understand, Iges does not really enter into it? The out of tolerance edges exist in the original Rhino file? Let’s look at that modeling process…


Yeah - the IGES point was just something I happened to notice at the same time. I think it’s been because of some booleans with very close intersections and small edges. Either that, or a rogue joining operation where the edges have kind of jumped between. At least all the CVs weren’t overlapping or anything when the edges were rebuilt. I’ll have to dig quite far back to see where it’s happened. There was some cage editing, flowing etc performed on this area, so it’s been through the wars a bit.

What are some other good situations for rebuilding edges?

Like I said though - I absolutely don’t JoinEdge ever in any instance. Not even to join for the sake of achieving watertightness.