Extrude Naked Quad Mesh Edges

I have an open SubD with holes in it.

I’ve converted it to a mesh using the Rhino WIP “SubD Control Polygon” grasshopper component. You do not need to have Rhino 7 to view my definition, as I have included the mesh internalized as native rhino 6. If you don’t have the WIP, just delete the blue group: Extrude Naked Mesh Edges.gh (189.2 KB)

As part of my process for turning this form into a closed polysurface, I would like to extrude the naked edges of the holes, but not the naked edge of the perimeter.

To do this, I am trying to convert the SubD to a mesh, extrude the edges of the holes down a little, {0,0,-0.5} to create a ring of quads, join the quads to the big mesh, and convert back to subD.

In Rhino, I’d just gumball extrude the edges, like this:

I’d prefer to script it as part of a larger project. This would be easy for me to do if I was working with a polysurface, but I have very little experience working with meshes in Grasshopper, so I’m asking for help. What do I do? And can anyone recommend tutorials for grasshopper and meshes?

My reason for wanting to do this is, by the way, is to guarantee good curvature around the holes before processing the object further and making it into a solid.


See attached.

Note: R Mesh SDK doesn’t expose any kind of Inner/Outer Loops Methods [as does for Breps] … so the attached assumes that the outer Loop is the naked edges Polyline with the greater Length … thus the holes are the rest Polylines. On the other hand and for other Mesh topologies defining a hole is ambiguous.

Mesh_Holes_EntryLevel_V1.gh (180.5 KB)


There’s inner/outer loops methods for Breps? I didn’t know that so I’d been projecting naked edges to a plane and sorting by area (because sometimes inner loops length can be longer, but they can’t have a greater area) but that only works for relatively flat examples like mine.

See attached.

Brep_InnerOuterLoops_V1.3dm (764.7 KB) Brep_InnerOuterLoops_V1.gh (120.4 KB)

That said: imagine a Sphere (or a Blob of some sort) with some holes: without some explicit rules (if they are valid and have any meaning) what is the outerLoop? What is hole? That sort of stuff.

That said: If the mesh is not planar … the thicken (into a closed Mesh) task is a very challenging one (having the general case in mind: any mesh + self Ccx events checks etc etc). For Breps with more than one BrepFace you’ll need a proper solid modeller app (Rhino is a surface modeller).

Get the trad update as well with regard Meshes.

Mesh_Holes_EntryLevel_V1A.gh (194.6 KB)