Watertight .STP export comes back in broken

I have a clean polysurface model with no naked edges and no no-manifold edges. It is a complex model with over 1400 surfaces.

I export the model to an .STP file and when re-importing, the model comes in with naked edges.

Originally, I was working at a smaller scale and the damage was even more severe where surfaces would re-import with visible distortion and misalignment.

Are there any known issues with .STP exporting or re-importing? Are there any file settings related to tolerance that might be causing the problem?

Thanks for any tips.

Hi jb1 - select the object in Rhino and type What … what does the report say about edge tolerances and vertex tolerances?


Here are the specs for the watertight Rhino polysurface:

ID: 85f8daad-1abe-4dcc-8deb-dac46cd6902a (6826)
Layer name: 767_300_assembly
Render Material:
source = from layer
index = -1
Valid polysurface.
Closed solid polysurface with 1427 surfaces.
Edge Tally:
34 seam edges
33 singular edges
4158 manifold edges
= 4225 total edges
Edge Tolerances: 0.000 to 0.127
median = 0.000 average = 0.000
Vertex Tolerances: 0.000 to 0.127
median = 0.000 average = 0.000
Render mesh: 1427 fast meshes 271602 vertices 273176 polygons
Analysis mesh: none present

Hi jb1 -
That is the bad guy right there I’d say.
If you open the file in the V6/WIP you can try testMarkOTEdges to locate the edges that need attention.


1 Like

Thank, Pascal.

I’m installing the V6 now.

Is the issue that the largest tolerance is bigger than the system tolerance? I did use the JoinEdge command in a few places.


Hi jb1 -This is almost certainly the cause… Please see Help on this command - basically don’t use it except in special circumstances…


Understood regarding JoinEdge.

I just ran the testMarkOTEdges in V6 and what’s puzzling to me is that the out of tolerance edges weren’t necessarily ones where I used the JoinEdge command.

Except for the current issue, 0.127 max Edge Tolerance is fine on my end because the model will be scaled down to close to 1% of its current size.

Hi guys,

I am having the same problem. I am on a mac and tried to find the testMarkOTEdges command but got an Unknown command message.

He are the details for the What report I ran on my closed polysurface:
ID: 2f5bfde1-5142-4f51-a8c9-11d43b91927c (96154)
Layer name: luva final
Render Material:
source = from obj
index = 2178
Valid polysurface.
Closed solid polysurface with 2178 surfaces.
Edge Tally:
221 seam edges
10 singular edges
5017 manifold edges
= 5248 total edges
Edge Tolerances: 0.000 to 0.002
median = 0.000 average = 0.000
Vertex Tolerances: 0.000 to 0.002
median = 0.000 average = 0.000
Render mesh: 2178 fast meshes 267882 vertices 267225 polygons
Analysis mesh: none present
Geometry UserData:
UserData ID: 3B7FB506-437C-431e-B1D7-93C4CBFF417F
Plug-in: Rhino
description: Gumball grip frame
saved in file: yes
copy count: 1

Attached is the file.

Thanks for the help!

Couldn’t get the file to upload and show up in here for some reason so I uploaded it to sendspace.

Hi Leonardo - the testMarkOTEdges is only in V6, not on the Rhino for Mac yet. However, your object is a little messy in a couple of places and it looks like it has been closed up with some very tiny surfaces - I suspect this is at least part of the meshing problem - I’d fix that and see what happens. The thing to fix is on the vertical seam of the more or less cylindrical surfaces - the larger surfaces do not meet and the gap is closed with some slivers that are probably hard to mesh cleanly.

I don’t think there is any reason for the tapered cylinders to have any surfaces here (red)

And on one side the gap is filled with some very questionable little surfaces:


Hi Pascal,

Thank you for analyzing my model. Thank you for the suggestion also. I will close up the model with larger surfaces and the very tiny surfaces will be removed. Is there a surface size which you suspect is better for handling meshing issues? When I go about the fix I would like to have some sort of measure to base myself on. Is there a size that I should aim for? Is there a command that can help me with this? Something like SelectSmall.

Thanks again.

Best regards.

Leonardo, we have found that when we get models with open edges, importing them into Fusion360, and running the stitch command (forcing patches to meet each other) solve many of those situations. Then you export back a Step to your desired destination.

Be aware that in those cases (and some others) fusion tends to change the control point structure of surfaces.

Yes! Sorry I forgot to say that. By ‘forcing’ I meant it rebuilds stuff. You have to be particularly careful if you have 5-degree surfaces that you like. It will mess with them. We only use it for imported geometry we receive from others (usually not very carefully modeled) so we are ok with the changes it makes.

Hi Leonardo - the areas I pointed out should not be ‘filled’ at all I would say - the cylindrical shapes do should be single surfaces with a seam, or possibly two halves. I don’t think there is a size really - I mean, you don’t want surfaces smaller in any dimension than the file tolerance, or even 10x file tolerance but the main point is to make the objects from the obvious simple surfaces where possible - if a cylindrical surface does not quite meet itself to form a clean edge, generally you don’t want to mess around filling with some arrangement of tiny surfaces, make a new cylinder that does close properly, if you see what I mean.