Question/Request Packed conversion of SubD by default

Hi all,

Is there any way to define by default that SubDs convert to nurbs with packed option?
It is clear that Nurbs conversion is inevitable each time you do a boolean operation, but instead of creating the result in packed way it gives individual surfaces. By now the only solution I found is to convert all the SubDs first and then do the booleans.

The same happens with Grasshopper, I created an interesting definition with some elements in NURBS and others in subd. The definition has some solid union and differences but the baked result is not usable more than for a preview if it’s not packed.

Any idea?


1 Like

added to the pile-

1 Like


To set the PackedSurfaces and ExtraordinaryVertex options when converting SubD ToNURBS in GH, you can use the Rhinocommon interface. Example in Python:

import Rhino.Geometry as rg
a = subD.ToBrep(rg.SubDToBrepOptions(packFaces, rg.SubDToBrepOptions.ExtraordinaryVertexProcessOption(vertexProcess)))
1 Like

Thanks @theoutside and @pierrec !

The definition has some solid union and differences but the baked result is not usable more than for a preview if it’s not packed.

@laborda What are you trying to do with the surface afterwards? For any SubD with more than a couple of faces and extraordinary points there are going to be way too many CVs to edit manually in GH anyway, whether the surface is packed or not.

Thanks for the interest Pierre, what I’m doing is trying to integrate GH gradually into my workflow.
At this moment I’m creating a silicone mold that has some parts created with SubD and some others in Nurbs. What I’m doing is placing everything in please in rhino, and want to have all the elements in GH for the final subtractions or solid unions. The baked result should be a good Nurbs model ready to be exported to Solidworks, where I do all the final fillets and other mechanical features.

The main benefit of GH here is to have live booleans, and the chance to move, edit or replace each individual part and see the final result as a preview quickly, and once it looks right I can bake it.

Now I’m trying to create an offset of this form using TriRemesh, offset and Quadremesh, with a bit of smoothing, but this is something for another post…

My vote for a dedicated “Sub-D to Nurbs” Grasshopper component with a packing option.
I work on “scan to CAM” workflows and I would appreciate working on polysurfaces with more reasonable surface counts without having to :
-Manually bake my sub-D’s to Rhino
-Pack the Sub-D faces
-Convert to NURBS
-Reference the resulting Brep back to Rhino.

By the way, the “RemovePerFaceColors” command doesn’t work in the current build :
Version 7 SR20
(7.20.22165.13001, 2022-06-14)

I’m stuck with my objects looking like they were painted by Mondrian on Ecstasy…


EDIT : found Mahdiyar’s component. It does the trick ; Still think it should be an official GH component. This mesh-to-Nurbs workflow is so powerful ; it would make more sense to have MORE of these sub-D tools in GH than in Rhino.

Hi @osuire

I’m still wondering, what advantage is gained by using a packed NURBS conversion in GH? In your example it seems to me like there are enough unpacked vertices that editing the packed or unpacked NURBS is going to be very similar. We stayed with the default unpacked conversion in GH for now because packing is a slow operation on larger SubDs, and has no stability guarantee so it’s difficult to reliably reference NURBS surfaces and edges after the conversion.

Could you share an example file? I just checked again that it is working here in that build, and I’m wondering if your issue might be with the materials applied to the SubD.

Hi @pierrec

For the same reason it’s useful in Rhino.

Because if you want to do some solid union/differences… the result would not be ideal, and in many cases, this would bring problems to doing fillets, wall thicknesses or any other operation.

1 Like

Thanks @laborda , sounds like I need to try some of these workflows myself again, I always assumed fillets in particular would work better on the simpler surfaces you get with unpacked conversion.

BTW, the relevant Youtrack item has not been linked to this thread so adding it here: RH-61955 Grasshopper: Add ToNURBS options for SubD conversion. This way the thread will get notified when it is fixed.

1 Like

Once, with a sub-D containing many patches, the mere conversion to Nurbs in GH gave me the infinite hourglass treatment and I had to force-crash Rhino (and lost my work).
But never mind, now that I got my hands on a c# component that does the packing, I don’t have to worry about McNeelies who think they know what I need better than I do.