SubD to Surface in GH

I’ve been researching this today, and don’t see a clear concise solution yet. Any ideas?

To use flow along surface in GH.

The ToNURBS command doesn’t exist as a GH component yet but the request is filed as https://mcneel.myjetbrains.com/youtrack/issue/RH-61955 . It looks like it’s slated for Grasshopper 2. In the meantime, you’d need to bake and run ToNURBS. This may ultimately be the faster approach anyways, I can imagine the solver getting slow depending on the geometry if NURBS conversion and packing of faces specifically were in a GH definition but that’s yet to be determined.

Is there any way to take the resulting polysurface from ToNurbs and get it simplified to just a singular surface?

Hi Geoff -

Which resulting polysurface?
Generally, an arbitrary BREP can’t be converted to a single surface because of mathematical topology constraints.
-wim

I guess I’m mostly trying to figure out how to use IAC’s “subD to nurbs”, but not sure what to do with the brep output…

1 Like

Hi Wim -

When running ToNurbs on the SubD and packing the faces, the resulting geometry is 1 open polysurface. I assumed there is no easy solution to this problem because of the constraints, but I wasn’t sure if I was just missing something

You’ll only get a single surface with ToNURBS if the SubD is a consistent quad layout with no extraordinary points/star points i.e. where three or five edges meet at a vertex. So it really depends on the topology of the SubD as Wim mentioned but it’s possible to get a single surface.

There’s probably a few different ways, depending on the particular geometry, but this is interesting:

1 Like

I feel like there are two conversations going on here. The first is “how to convert from SubD to Brep in GH1?”, the other “how to convert a Brep to a single surface?”. I don’t have a lot to say about the second one but I can offer some additional details on the first one. Hopefully there are helpful to some of the conversation here.

GH1 is able to convert from SubD to Brep out-of-the-box, but with no options available. Just plugin a SubD type into a Brep component, or to an input that takes Breps, and voilà, the SubD is a Brep.

GH1 is also able to convert from SubD to Brep with all possible options (from the Rhino ToNurbs command), using a scripting component and the RhinoCommon SubD.ToBrep API. See this thread for a script: Can we have a ToNURBs with options Grasshopper component please?

There is no need to bake and run ToNURBS to get from a SubD to a Brep in GH1.

Also, and this is where the two questions intersect, converting from SubD to Brep with the packFaces option on will reduce the number of surfaces in the resulting Brep, even creating a single surface Brep if the SubD topology was quads-only.

3 Likes

not “brep” but something able to be “flow along surface” instead. and not GH1 but GH2 or current version.

Maybe, but more just ‘srf’ in general so ‘flow along surface’ can be used imo.

That’s great, now how do you volla ‘flow along a brep’ :tipping_hand_man:t4:

That sounds complicated. Where’s the Eto framwork buttons instead? :sweat_smile:

How to convert brep to something ‘flow along srf’ will work on?

1 Like

@lander You’re right, FlowAlongSrf only works on single surfaces, and there is no way to convert a SubD to a single surface in the general case.

The only way to get a single surface out of a SubD is when the SubD is made only of quads laid out in a regular grid, and using the PackFaces option.

@BrianJ just reminded me that the whole problem of FlowAlongSrf only being available for single surfaces, will probably go away when SquishBack also works with 3d objects, making another workflow available:
https://mcneel.myjetbrains.com/youtrack/issue/RH-60263

2 Likes