Select all Edges and Extrude?

I have a large number of surfaces with a large number of holes. I need to create extrusions at all the holes. Is there some simple way select all the edges and extrude them

I am trying to get this effect (shown in gray) but done for a lot of holes, not just one at a time.


You could use DupFaceBorder on the surface(s) to get all the borders as curves - inside and out. Then deselect the outer border(s) and extrude…

you could also just extrude the surface and delete one of the caps- or gumbal extrude the surface and delete the cap-

I tried the dupborder method in the attached file with a planar surface.

Problem Extrude.3dm (3.0 MB)

I can extrude the curves individually but cannot extrude them together (which I need for the volume).

Why is that?


In that particular case it works but i have planes orient in all different directions that are not normal to the axes as well.

if they are based off a planar surface you can extrude the surface and just delete the cap-

It appears that the Extrude commands can only extrude in a single direction during a single execution of the command. Presumably that is the way the command is written.

Which is equivalent to ExtrudeSrf with Solid=No. (Rhino for Windows; I assume Rhino for Mac is the same.)

That is correct. There have been requests for the option to have extrusions of multiple planar curves in different planes to follow each individual plane normal direction instead of all in the same direction… Someone might have already scripted it.

Any idea why extruding those curves created from the edges of a planar surface does not work?

Extruding the surface and removing the edges works but it is a PITA.

You are talking about the curves in the file you posted above? Each curve extrudes in its own plane when done individually, but selected together they do not take that direction as default. I imagine that the Rhino Extrude function is just not intelligent enough (yet) to figure out that all the curves are in the same plane.

You would think the openings in a planar surface would all be in the same plane.

That is how it appears to me also.

The openings are in the same plane, but the command doesn’t recognize that they are.

Sounds like a bug.

More like a limitation - as there is nothing that that is produced that is incorrect, it’s just an inconvenience requiring extra steps or a scripted solution to get where you want to go.

@bigjimslade, @davidcockey

Here are a couple of quickie-hackies… (1.7 KB)
Extrudes coplanar curves in the plane normal direction (curves must all be coplanar) (1.8 KB)
Extrudes planar curves that are on parallel planes (but not necessarily in the same plane). Considers planes parallel if their normals are within 0.01 degrees.


Actually it might be - in the case of your one surface you posted above. Been testing in other situations and it seems Rhino is already reasonably intelligent about finding multiple co-planar curves and extruding correctly them in the plane normal direction…


It looks like Jim’s surface is not quite planar - at least if I set a CPlane to the surface, then ProjectToCPlane the surface, reset the CPlane to Top, then DupBorder and Extrude, it goes the right way. If I don’t do all that folderol the extrusion direction is ‘wrong’. But the deviation off of planar is microscopic if it is really there at all. Still poking…

RebuildEdges also sorts it out - my guess of the moment is that this object was joined to others at some point and the edges were pulled a tiny amount out of the plane to get the Join. Edge tolertances on the surface are much smaller than the file tolerance so I’d think this would not be a problem but for the moment I’m sticking to my theory…


OK, I didn’t check that, I just saw that the surface passed my SelPlanarSrfs test (selected), but I guess my tolerances are looser than ExtrudeCrv’s in this case.

It was created using PlanarSrf.