I have closed polysurface after offset (much more complicated than from that example case). I need to separate A surface and delete B surface with a strip. The object is curvy so selecting all visible areas is not a good idea. I`ve thought to select a strip because it’s perpendicular to the A surface. After removing it and joining I will have A and B joined surfaces without the strip. So then will be easy to remove B surface (as one joined polysurface). So I would like to select all surfaces which have more than 80degrees of angle difference from their neighbour. How to do it in Rhino?
I want to delete red and leave green. This is only example object. Real case is much more complicated. test_surface__.3dm (337.5 KB)
I have to say that your script helped me a lot because I have 90percent of the job done. Only a few surfaces left which I can add manually. So Thank you
If somebody will have a better idea then please also post it here.
That will work fine in some cases, simply that really curvy surfaces can have normals facing in many directions. The script only samples one normal in the middle of the surface’s U/V domain. So in some case it may not do exactly what you expect.
I thought I had written a script to sample and average the normals over the surface, but I can’t find it now. The definition of “view direction” is already as wide as it can be, covering any normal vector that less than 90° away from the view vector - i.e. sort of a hemisphere in the view direction. To enlarge it further would make it possibly respond to surfaces facing in the “away” direction.
Just in case, here is a view-facing normal script that works on both planar and non-planar surfaces. It samples each non-planar surface and creates an average normal from the samples and uses that to compare.