Solid Inspector 2 Not reversing faces


#1

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.

Thanks.

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


#2

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.


#3

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?


#4

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.


#5

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


#6

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

Anssi


#7

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


#8

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.)


#9

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.


#10

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


#11

@thomthom
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 face.bounds.center 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… http://sketchucation.com/forums/viewtopic.php?p=15273#p15273
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 !


#12

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.


#13

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