Sub D Wirecut

I think that having a SubDWireCut command would be epic.

That is all.


Hello - it is probably not hard to implement, but the output will not be SubD. Is that still useful?


1 Like

That is exactly what I am after!! Currently selecting and deleting parts of a subd can create some really odd shapes. Having a function like the wirecut that could preserve the intended shape would be very nice. Even if it had to create a slightly denser subd at the incision point.

Thanks for considering my request!


Currently you can use ToNURBS to convert the SubD object to a polysurface. Then use WireCut the polysurface. You can also Trim, Split, etc the polysurface and use it in Boolean operations.

1 Like

Hello - this is what it will not do - the result would not be a SubD. Trimming SubDs is not currently possible.


If the output isn’t SubD, is it even a new command really? It’d just be a script that does tonurbs and split.

Here’s the problem with this:

I extract the control polygon from a subD and intersect it with a plane:

I use InsertPoint to trace the intersection, splitting each subD face:

I get something that doesn’t look great, and doesn’t seem very useful:

I split the SubD with the new edge loop. It’s still ugly and not useful:

An alternative is to convert to Nurbs:


Quadremesh, Converting to SubD:

The second option gives better results, but in this case quadremesh needs to be applied with some trial and error to get a preferred outcome, and the result is still somewhat imprecise.

Now, it’s possible that whatever magic @DanielPiker put into his SubD Fuse grasshopper component might be able to make this work better, but it’s way above my pay grade to say whether it would work well enough to be a reliable command. And as handy as it would be to have this, it doesn’t seem so important as to justify the development cost, especially because it’s so different from typical subD workflows.

All of that said, I am not a Blender user, or a user of any non-Rhino SubD application. Maybe they can do this and make it work?

This is basically how I have been doing it so far. I create a shape convert to nurbs first and then split, then quadremesh back to subd. It’s not pretty, but it does work in most cases. My thoughts were that it would be really nice to have a little more control over the output of a SubD that needed to be trimmed. There is a slight amount of unpredictability when it comes to selecting/deleting parts of a subd model. There is always a work around, of course. Some times quadremesh requires very dense subdivision that can make it difficult for further modeling.

To expand a little bit on why “trimming SubDs is not currently possible”.

SubD surfaces do not have an inherent parametric (u v) formulation. This is what allow SubD control networks to have arbitrary topology without a requirement for rows and columns. NURBS surfaces are based on a parametric formulation with the requirement that the control points be arranged in orderly rows and columns.

Wirecut is a combination of split/trim and extrusion/sweep operations. My understanding is split/trim operations for NURBS in Rhino use the parametric formulation of NURBS surfaces. This results in the the split/trim operations not increasing the number of control points; the operations are executed efficiently; the resulting surfaces can be efficiently evaluated for further operations; and the resulting surfaces can be compactly stored. Also the shape of the surface does not change inside the new boundary.

SubD with it’s lack of a parametric formulation would require a very different approach to splitting. Depending on the complexity of the split the control network would become more complex and in some situations much more complex, and the corresponding number of faces would increase. Also the shape of the surface would usually change. Along edges and creases a SubD surface has zero curvature in the direction normal to the edge or crease, at least in the Rhino version of SubD. This means that in general the shape of the SubD surface would change near the split/trim edge.

The above is based on my knowledge of NURBS and more limited knowledge of SubD. Corrections or clarifications are welcomed.

1 Like