Command to clean pushed back protruded part


Is there a command which could repair solid when a protruding face on solid 1 is pushed back and you get solid 2.

There are still zero side surfaces which i want to ged rid of.


Not a good procedure - you probably produced a bad object in doing that (try running _Check on the object).

If it is bad (most likely) run _ExtractBadSrf, delete the 0-area surfaces, Join the rest back together and MergeAllCoplanarFaces. (MergeAllFaces in V6)

In the future just delete the protruding surfaces (Ctrl+Shift+mouse or window select, Delete), then use Cap to cap the hole and Merge faces to get rid of the joint.

Strange that extract bad srf does nothing in this case. This is very frequent situation when modelling walls or similar architectural objects. You just push and pull and many times you result with this situation.
I hoped there would be an elegant way how to just repair the solid with one command.
Cap is not always the answer since the face is not neccesserily always planar.

I am thinking that command could just look for zero surface in polysurface delete it and weld the remaining surface to the rest. Or just untrim the interior boundary of surrouding surface.

When exploded the polysurface there actually is zero surface which was not recognizd with extractbadsrf

1 Like

test.3dm (128.2 KB)

OK, in that case you would need to be able to select near-0 area surfaces. There is no native Rhino command for this, but it is relatively easy in a script.

how come rhino calculates non zero area for zero area surface? it is just 2 coincident edges and 2 point creating this surface.

No, actually not, if you DupBorder the surface you get a polyline with 4 points. The two short sides are microscopic and far below file tolerance, but they are there.


si it comes down to tolerance problem? because those boxes were made by box command and push back was aligned exactly to the box face. i would assume that tolerance should not play any role in this. if there is discretized space made of tollerance sized voxels it should just align exactly resulting in exactly zero area surface. where am i wrong? this just feels to me like it calculates geometry wrong way

Hi Ivan -

I tried to reproduce that but when I gumball-push a face into an object like that, I do get the Bad Object warning and the result looks like this:

Do you have a procedure that will reliably produce an object with zero-area surfaces?

No voxels here. All NURBS surface objects are subject to tolerances when calculating joining etc. I can’t tell how you made your object, when I union two boxes here and push the surface back like you did I get a bad object - which means I actually did get a 0 area surface or one that has 0 length edges. But somewhere your procedure didn’t produce the same thing.

Anyway, here is a script that will select near-0 area surfaces - if they are valid, it may not if they are bad (invalid). (997 Bytes)

1 Like

I know there are no voxels i just used it for visualization. Sounded like it though.

OK it is how is supposed to behave like you say that you get bad surfaces when you do what i did. I am going to try again. It may be that I made those boxes too small in size. I am going to check if size somehow matters in this case.

Yep. That’s why I don’t recommend this way of working.

all through the years i have fantasized about looking through you script library. i bet you have a boatload of sweet specialized scripts. :slight_smile:

dont know what i am doing wrong.
i tried with small and big boxes and with different snaps in case it was the problem

Even when you model as neat as possible this usually happens during changes on the project. So basically inevitable. Client wanted some walls taken away so i just pushed back faces which is the easiest but i had to do it properly then with boolean difference which also failed manytimes.

Easiest for you, but not good for Rhino. Unfortunately, even 3 versions after direct solid editing was introduced, Rhino still doesn’t know how to deal with (i.e. remove) collapsed surfaces/edges when they occur - which limits its usefulness a lot. It is what it is. It does take longer to do it correctly and avoid the problem, but at least then you only have to do it once.

i tried in Rhino 7 beta it selects bad surfaces in 6 not

So some improvement has been made - they are not good objects to have.

Hello - UntrimHoles is the easy way out here.



Whaaaaa…! Ha! I would have never expected that with a stick-out thing - but of course in retrospect, it’s totally logical, it’s just a hole in a surface with something attached, doesn’t matter which way it’s ‘sticking’…

Geez, I feel pretty idiotic now, it even works in V6… :stuck_out_tongue_winking_eye:
Thanks for the cool tip!