Solid Inspector 2 Not reversing faces

Background: My solid isn’t actually a solid. I tried using solid inspector 2 to figure out why that circle/cylinder had faces that need to be reversed. Which is fine all the face segments reversed except those two. Manually won’t reverse either. I also made this shape as a solid and from a solid intersecting another solid, so I don’t why anything resulted won’t be a solid.

What’s going on? Can someone explain to me what’s wrong with my solid and how can I fix it? Solid inspector 2 will not reverse 2 faces for me. Reversed all the others one though of that cylinder cut out.


Model file for easier diagnostics (1.1 MB)

Nina edit: typo in title but I can’t edit it because edit is too similar

Nina edit 2: Now title is fixed but can’t edit this text out

Solid Inspector 2 is a very new plugin that Thomthom is still fine tuning. It occasionally finds errors that aren’t there, such as these two faces.
Look at it in monochrome and you can see when it is correct, then group it all and it will be a solid.
The only reason it isn’t a solid is that it is loose geometry, and that needs o be grouped for it to be recognised as a solid.

1 Like

Oh ok that makes sense. I’m new to this so I just assumed it’s right, but I guess I will look out for it now.

The monochrome tips is great! By setting the view to monochrome I can see manually what’s happening and do it myself so I understand what that plugin is doing for me. And I can confirm if the plugin is correct or not.

Yes, also for 3d printing lets say I stick some letters onto a box. The the letters and box are both their separate groups and z fighting occurs. Is this fine or I have to fix the z fighting for 3d printing? Or do I have to explode both groups, combine them, and delete one of the faces so there is no z fighting?

And I read the little dialog help box for stray edges but I still can’t find it, can you explain to me how I can find those manually?

If you click the area where it says Stray Edges it will highlight the edges in red for you. Then tap the Tab key to zoom to each edge in turn if there is more than one.

1 Like

To get one solid for printing, you should explode them and delete the one connecting face (otherwise it will not be a solid).

Edit: added image

Combining solids can be done more easily with the Outer Shell tool.


1 Like

Yes, you are right (if you have only solid groups and components and not more than one nesting level).

1 Like

As people have already said, Solid Inspector 2.0 has a few false positives. I’ve been working on an update that improves the Reversed Face detection and makes it faster. The new version handle your model correctly.

Treat Solid Inspector as a guide - not absolute rule. Not every mesh is possible to solve reliably. (Though keep an eye out for updates that have good improvements. I have two lined up.)

Version 2.0 should let you tab through errors - where the camera will zoom to the error. Click on the Stray Edges in the inspector window to filter out stay edges errors only, then hit tab.

Version 2.1 makes this a little bit easier by adding a circle around the selected error.

So a little bit like version 2+1 and not 2.1 :wink:

1 Like

I haven’t delved into your code, but here’s an observation or two…

An object which contains wrongly oriented faces will still be seen as ‘manifold’.
So the fixes should attempt to make it a solid, and then do a final check for consistent outwards face orientation.
To find a correctly oriented face [looking outwards] you need to iterate through the object’s faces, stopping when you have one. A correctly oriented face will raytest from the using the face.normal vector to either return nil OR an array that does NOT contain face.parent
In a solid a reversed face’s raytest never return nil as it will hit some geometry belonging to the face.parent.entities.

If there is no suitably oriented face available it indicated all faces are reversed.
Chose one and reverse it…
But assuming you get a suitably oriented face then use an ‘orient’ method to iterate all other faces to match that face.
There are several such methods around - I wrote one ages ago…
Several of my tools use variations of that to ensure any made geometry is consistently oriented.
Orienting a solid’s faces is actually easier than non-solids - that’s why I suggested you only check for reversed faces after making it solid - if the object can’t be ‘solidified’ then a few reversed faces are the least of your worries !

1 Like

That’s what it currently tries to do. Using some ray tracing at the moment I resolve the internal faces and then make a pass on finding reversed faces.

However, I couple of days ago I was contacted by a friendly lad who provided me with some code to determine internal and reversed faces without any ray tracing. :smile: The code is blazing fast compared to my current mash-up! And much more reliable as well!

So it currently looks like the next release will be 2.2 instead - skipping 2.1 all together.

Yes, I’m not even trying to look for reversed faces unless the object can be resolved as a manifold.
The code I received actually appear to be able to remove stray “flaps” - rogue faces - though I’m not yet sure how reliable that is. I might hook that up later after getting 2.2 out there - fixing the current issues.

If I had been using WinAmp versioning it should have been Version 3… :wink:

Is my problem the same?
I love Solid Inspector, but it seems to have overlooked some instances of my sloppy work.
Are these dissimilar surfaces a problem?
Should I fix them?

Short Sunderland white.skp (13.2 MB)

The faces are correctly oriented for the type and stage of your model. If you want the inside of the plane to have white faces, you have to give the surface thickness.

Thank you soo much! Since I learned how to use Sketchup by trying to make an object I had in mind, I often missed basic information like the meaning and use of icons such as the one you just pointed out. Now that I can make the objects I want, I find I am going back to the beginning in many cases and learning basics that I probably should hav learned when I started. Thanks again!