Hi!
I tried to find command but could not…
Is there way to select by closed surface?
I tried boolean difference (with two closed solid objects) but it failed. Maybe too many surfaces, which are same in both objects…
So I used explode and cut with solid object.
Now I’d like to choose all the surfaces, which are inside of the solid object, to delete them. It will take some time if picking one by one (very complex part).
Is there some easy way?
That looks correct to me but then you only posted a picture and not the 3dm file. Also, perhaps your description of your requirement doesn’t fit the actual requirement?
-wim
Hi Wagner - thanks for the example - it seems to depend on whether or not render meshes are present. ClearAllMeshes and the thing works better, but in any case not 100% right, here; the command does seem to need some work at least in this example.
Unfortunately, the command is designed to ignore objects that intersect the selection volume, they have to be fully inside - i.e. by at least the file tolerance away from the selection volume surfaces.
If I OffsetSrf your original volume object by just 0.01mm (your file tolerance) and use that as the selection object, my script at least will select all 11 red parts. SelVolumeObject does not get all of them though.
I have wanted to modify the script to also get “touching” objects, but this is difficult, as it’s hard to distinguish between “just touching” and “penetrating” by some small amount.
Thank you for everyone who gave opinion about this.
Now I understand your “developer problems” better about this
Helvetosaur: I don’t know about penetrating. I just used split command, and it gave the result of that. I don’t know about tolerance there how it works.
Ok, I see it needs to be totally inside. Then the result makes sense
I made offset and it took 4 minutes so maybe I’ll go on with manual work.
So, over the last couple of days, I decided to try to revamp my script to see if I could include objects completely inside the envelope, but have points or curves that just touch the envelope - i.e. objects that have been split with the envelope, curves that are coincident with the envelope etc.
I tested with your file above (without offsetting) and it works correctly - all the red objects are selected - I also tested with a few other cases here. Have a go with the script below and see if you find cases where it gives a false positive or negative (I’m sure there will be). It may be somewhat slow with many objects or very complex meshes or polysurfaces, as there are a lot of points to check. If you do find a case where it fails or doesn’t select what it’s supposed to, post it here and I will try to fix.
Edit - quickly added support for SubD’s - internally converted to breps. SelObjsInsideSolidV4.py (11.7 KB)
And wow, it works great, exactly how I needed. Let’s see in the future if I find some weird behaviour.
I wish you can include this in to the becoming updates
I have no words to say how amazingly well and fast Rhino support works!
Thank you!