[REQ] Select internal edges
-
"Remove inner faces" don't work in this case (some surfaces are no coplanar)
So something who select internal edges of volumes will be coolImage above and file test By Tomot
-
cool idea. that could indeed be useful at times
-
Thinking out loud...
Outline of the Tool
Select Entities [e.g. Faces and Edges].
Look at each Edge in turn.
Make an Array of all of the Edges and Faces Connected to that particular Edge.
If that Edge has no Face then Erase it
If that Edge has Faces we loop through each Face.
If the Ray projected along the Normal of that Face, and along the Normal.reverse of that Face both Intersect with a Face or Edge that in is the 'Connected' Array then it's Internal and we Erase the Face AND perhaps Erase the Edge - if none of its other Faces aren't 'External' ?
Fails if 'overhangs' ?
We continue through he Set until we are done... -
@tig said:
If the Ray projected along the Normal of that Face, and along the Normal.reverse of that Face both Intersect with a Face or Edge that in is the 'Connected' Array then it's Internal and we Erase the Face AND perhaps Erase the Edge - if none of its other Faces aren't 'External' ?
hm... might not work. if the shape bend for instance in a U shape then the faces in the inside of the U will intersect faces in both its normals, even though it's an external face.
-
Hence my
@unknownuser said:Fails if overhangs...
Can't see an effective foolproof way of determining if an Edge or Face is within a Volume... -
Pilou, i think the problem is finding some way of determining whats an internal face and whats an external face.
-
Does not possible after an general "intersect", select only external faces, invert selection, erase?
-
At first sight it should be easy...
We list all_connected faces in the shape, then we loop through the list.
If a ray that's on an all_connected face's 'normal' intersects with something else in the all_connected list then it's internal...
This method works fine on a simple cube** etc BUT if the shape is 'convoluted' then there can be external faces overhanging other external faces, so that the method finds a ray intersection and return them as 'internal', but they are NOT...
**Note that also 'reversed faces' will appear to be internal when they aren't, even on a simple cube !I'm sure there's some clever topological way of telling if a face is external or internal to a set of connected faces... but I don't know what it is.
If only we knew a budding Mathematician... Remus, do you know any ?
-
I wonder if SketchPhysics has some code that could be useful to determine external/internal faces..?
-
If you make the 6 views XYZ "visibles front face" by Normal you have not all external visible faces?
In Blender you have something named "occlude background geometry" that help for this sort of selection
-
@unknownuser said:
If you make the 6 views XYZ "visibles front face" by Normal you have not all external visible faces?
In Blender you have something named "occlude background geometry" that help for this sort of selection
It won't 'see' ALL external faces... if for example there is a hollow into the shape that is wider at the back...
-
So a cool headache
-
Yea, it's a royal pain in the rear end!
-
just came across this thread: http://forums.sketchucation.com/viewtopic.php?f=180&t=12668
haven't looked at the code yet. -
Question:
Does or can ruby act differently in selecting geometry if Xray is turned on or off?
If so, then could you do two routines, one with it on and another with it off, then compare the two results?
Would the difference between the results of the two routines be the internal edges? -
can you bounce light at the problem?
-
A combination of Erase-Coplanar-Edges and the Remove-Inner-Faces, then Erase-Coplanar-Edges again gets rid of most internal faces and edges BUT it can't remove inner faces that are subdivided and not coplanar or have a single-faced edge...
I thought about getting the all_connected face/edge and vertices and using the shape's topology - Euler Factor - v-e+f=2 etc to see if that helped - but so far not much use. If you remove the coplanar-edges first it does return 2 for simple solids + 1 for every internal cell making face...
Advertisement