SubD from curve boundary?


I am very new to SubD and would like to know if it is at all possible to create a subD surface that fits closed polycurve boundary. Reason for asking this is because I was trying to model a 3d connector that using subD Multipipe command that serves exact purpose but was not very satisfied with end cap not being exact circle, so I am looking for a better way to create smooth connector shape that can keep exact circle shape at the cap end.

I have found similar old project (https://www.grasshopper3d.com/forum/topics/smoothing-nodes?overrideMobileRedirect=1) where he somehow managed to keep surface continuity between the pipes and the connectors and the round cross-sections using tsplines.

Any ideas or references would be very appreciated.

Hi @AndrewAhn,

A SubD can’t have an exact circle as a boundary, see Dale’s reply here:

However, by adding more control points in the loop, they can get as close as needed for practical purposes.
If you can wait a bit, there will be a future update to MultiPipe to allow control of the number of divisions around the pipes, to allow making the ends more circular as needed.
After converting to NURBS it should also be possible to make the ends exact circles by adjusting control point weights.

It might be useful to also add a ‘node only’ mode for MultiPipe - if the openings of each node only need to meet a circular tube without matching the control points of connected nodes, it is a simpler problem than thickening a general curve network with one unified SubD, because it doesn’t have to deal with the different number of edges and alignment of the loops at either end of the struts.

2 Likes

Hi @AndrewAhn
I know this has been disucssed before, and I seem to remember, that there was some talk about adding an option to further subdivide the MultiPipe result, in order to get closer to a perfect circle. It’s the nature of sub-d, that a perfect circle is not possible, but you can get (very!) close. For now, the trick is to further SubDivide the MulitPipe result and then use Align with the ToCurve option, where the curve of course is a circle. attached is an example, where the deviation on the resulting sub-d end is less than 0.006mm from a perfect circle.
HTH, Jakob
connector.3dm (1.2 MB)

2 Likes

For now here’s a little helper definition that does some subdivision and fitting
Node_circular_ends.gh (31.2 KB)

6 Likes