Confused about some very basic SubD functions missing

Sometimes I want to try model something quickly in Rhino SubD but I have no idea how to do even do it, so I’m going to ask here:

  1. How do I split this primitive in two separate ones at this selected edge:

  1. How do I delete this selected chunk of faces so it leaves a hole:

…I tried this again, and it works on regular meshes achieved by ‘ExtractControlPolygon’ from the original subD. But it does not work on SubD:

Is the goal that every function that today work in a regular polygon will eventually work on the SubD subObjects? I hope so.

  1. how do I copy-paste (or cut>paste) that same selection above?
    I tried Command: '_CopyToClipboard and I get: “209 selected subobjects ignored.”

  2. How do I convert this selection:

    into the outline edges only, like this?

  3. This model has reflect applied…

    5A: How do I disable the reflect functionality?
    5B: How do I know that I’m selecting on the editable half of reflect? (I made some complex selection just to realize, that it won’t move because this is the child side)
    5C. I subdivided a face but reflect is not propagating thatto the other side: Can this be added?

  4. How do I make this partial loop selection flattened as a straight line between the first and last point of selection (like shown in green)?



  1. ExtractSrf works on SubD faces. Just select all faces on one side of whatever boundary you want to split at. It will make two subD objects where there were once one. (From a UX perspective, though, I think it also would be good if in Rhino 7, _Split would accept a subD as input and that same subD’s edges as the second input)

  2. I’m confused. Just hit delete. It works for me.

  3. _CopyToClipboard doesn’t work on subobject selections. Not in rhino6 either. Not with subsurfaces of polysurfaces or faces of SubDs. However… Just _Copy works. It also delivers a weird visual before you click out of the command, both in rhino 6 and rhino 7… it makes it look like you’re moving the subobjects or subD faces, and gets stretchy as you drag. Once you click out, though, you get your copy, with no effect on the original object. All of this seems like it could use a UX clean up. Is there a reason _CopyToClipboard shouldn’t work?

Hi Gustavo, thanks for the feedback,

ExtractSrf as Max mentioned will work now but you’d have to select the faces. I also added your vote to for SubD split support that maintains the SubD.

As Max mentioned as well, Delete will make a hole here. The DeleteFaces command and icon on the SubD tb will also do it.

Maybe :slight_smile: , In many ways yes but the SubD surface is not a mesh so I think in some cases a new command is needed. Take your Split request for instance above, if that worked like on meshes and your split line was not an edgeloop, you’d get little triangle faces in the SubD creating darts. Or Booleans as another example, if the mesh Booleans were used, you’d get meshes and not NURBS as you do now.

I know it is confusing since you can view the flat display mode of a SubD so it seems like it is a mesh but it’s not under the hood. The best thing to do is let us know specific mesh tools that you miss when it comes to SubD and I’ll make sure they are on the list.

ExtractSrf with the Copy option or hold down Alt and drag it with the Gumball to make a copy of the sub selection.

This is filed as I added your vote.

This is filed as I added your vote as well. ExtractControlPolygon will let you make a version without the reflection symmetry in the meantime.

Thanks, I filed to help solve that issue.

Thanks, filed as In the meantime it appears you can make another edit to the parent side and the subdivided faces will reflect.

I’d relocate the Gumball to one end and then scale with the perpendicular scale handle until it snapped to the GB origin. You could click and release on that scale handle too and type 0 > Enter to flatten it instead. This will make the edges a straight line in flat mode but it will be curved still in the smooth display of the SubD given the adjacent geometry.

1 Like

hi @BrianJ @Max3, thanks for the feedback. Let me address each of my 5 questions:

Got it about _ExtractSrf, great trip, super counterintuitive IMO. Especially because my input is an edge. I want to split by edge: in SubDs, in Meshes and in Nurbs.

oh Noooo. I should be able to split any edges, in any topology, and regardless of them being a loop, a little strip, or a single egde. I’m the one modeling, I’m the one making a request to split what I want. This is the whole point if a fre-from design tool. I made a video example for you on one of probably 50 different use cases where partial splitting makes sense to develop form and details:

I swear this was not working for me the other day, no idea why. Maybe I was tired and missing something. It works now with both Delete and the weirdo icon. I don’t want to have separate delete buttons/commands to do the same things to different things: delete. So I’m happy that the delete option works.

Nope. New rule for your team: If I can extract a control polygon, and turn such control polygon back into a subD, from all my design needs and requirements a SubD is a mesh. So anything that mesh can do, I expect SubD to do. Please don’t cripple my tools. I’m sure it makes your life easy dealing with support calls, but it makes my life as an experience modele a heck of a lot harder. Don’t make only dumb tools, please.

Hay hay hay… Im busy, I’m old, and I cannot be thinking about all that just to copy something.
I think if I select something, meaning it’s now highlighted yellow, I don’t care if it’s an object, a subobject, and metaobject…I should be able to do shit with it: model, scale, rotate, delete, copy, cut…

I know this limitation also exists in Nurbs Subobjects, but maybe it’s time to realize that preventing us from Copy/Cut such things is not good. Again: “free form modeling, people!”, when did you all get so uptight? We have work to do, and we want to have fun doing it!

Thanks Brian for filing all the limitations of reflect.

I don’t think we are talking about the same thing. I do get the point that I need to relocate the gumball to one end of my selection. But I also should align the gumball to the other end of my selection. and then do the perpendicular scale thing. However when I do it something that is not what I expect happens…

…so I cannot snap-rotate the gumball, since it’s not snapping at the start of the rotation widget.

also, this whole thing should ne one click> done. Maybe it makes sense to be a script?

in summary:

After a 5 minutes test, I mostly see 2 very worrisome things:

  1. Friction by a very severe lacking toolset
  2. Friction by having made design decisions that are against free-form fast modeling for design and exploration.

Number 1 is expected, it will take time. But number 2 is very very disappointing, even user hostile IMO. I hope your team can see this and change direction.




My thoughts:

Agree on 1. Your video makes a great case. But this should only work along edges, right? Splitting between edges and re-creating faces on either side of the split that could be triangles or ngons seems like it might be messy.

Agree on 3. _Copy and _CopyToClipboard should work on all subobjects: mesh, SubD, Nurbs. It’s intuitively what a user expects subobject manipulation to allow. If a program lets me grab an edge and move it, altering an object, I expect to be able to copy the edge and paste it in place, or copy it and paste one or more copies elsewhere. It shouldn’t replace things like _ExtractSrf _DupEdge and _DupBorder, but it should return the same results in the same context of use.

But again: _Copy already works. @gustojunk I have _Copy set to control-alt-C on my keyboard options, I use it all the time. And for finding workaround for things that aren’t done yet in the Work In Progress Rhino 7 because it’s a work in progress, it’s been very handy, many times, I’ve been using it for months. _Mirror is handy this way too. It also produces a new SubD from subobjects.

hi Max,

RE: 1 (split edges): yes on existing edges, otherwise we are talking about very different tools like a knife, or polygon splitter, etc. Which of course we should also have, if we want to have a full featured modeler. And like all tools: they don’t have to be used by those who don’t want Ngons or whatever.

Re: 3 (Copy subobjects) The problem with _Copy is that it’s not really a replacement of _CopyToClipboard, but rather a one-shot combination of _CopyToClipboard + _Paste.

Sometimes I want to do the paste later, or on a separate session of Rhino, or _CopyToClipboard (a subObject), close the file and paste it on a newly opened file. Or I want to use _Cut instead of _Copy.

There’s no reason for this extra friction.


This makes sense for now, I instead did:


set to control-alt-C so that makes more the function of a _CopyToClipboard.

Still, I think we need more sanity and consistency here. I don’t have to have to use Control C sometimes and Control-alt-C some other times.

I almost never use control C anymore, come to think of it. _Copy can do what it does, and more.

The only time I use _CopyToClipboard is to move stuff between the WIP and Rhino 6.

Ah, that’s right. The other time I use _CopyToClipboard is to save some work to paste, right before I hit undo a bunch of times.

I just to say that sud-D ref is fantastic tool

Thanks Gijs, that makes more sense. Of course if you have a series of 10 loop selections across a model, you’d have to do this 10 times, and what’s even worse: you must rely on a tool that needs snapping (and could possibly miss-snap) to do it, so we have an approach that is both extremely labor intensive and very prone to user error. We need to do better :man_dancing:t2:


1 Like

I fully agree. :slight_smile:

fyi: Just found _TestAlignControlPoints

Would be nice if this worked on edges too

Literally opened this thread as I was aligning control points manually.

It works great! First attempt I just ran it, picked points, picked a circle, and bam!

Almost a perfect circle right where I need it.

But to get a really good circle in subD we need a way distribute the control points evenly around the circle. So in this scenario, I’m still doing it manually. (Note the bump at about 1 oclock on the hole in the pic above, versus even spacing in the pic below, Subtle, but it matters.)

Is there a way to snap control points to nearest point objects already?

Should we ask that aligning points so they’re evenly spaced be built in to _TestAlignControlPoints?

1 Like

try the attached :slight_smile:

(rough script, no guarantee it will work perfectly but so far seems to work) (1.5 KB)


Works most of the time.

Sometimes it stacks two adjacent points and then leaves a double space between two other points. So, like, with 9 points, the result will appear to be 8 spaced evenly along nine divisions, with a gap.

In my case it’s easy to spot the double point because all my surrounding faces are quads. I just find the triangle, space the points out a little, run the script again, and the result is good. This seems to be about 1/4 of the time so far. I bet the less complicated the mesh is, the more it will work. In a bunch of cases this will save me tons of time. Thanks!

The reason is that the script fits a circle, then divides this circle and pulls each point to the closest point.
At first I tried to do point by point but a loop of points is not organized in a logically ordered fashion.
I might try to first pull the points to the circle and then do a second move of each point to the closest division point.
For the moment if this happens you can move the point that fails a bit and run the script again.

Yeah this is already super useful. I kinda figured you were counting points, then dividing the circle.
The other thing it does is draw the circle, which, when it glitches, is a great thing to have to snap to. It also tells me which of all the circles I’ve run the command on.

And we also missing very import command : Topology command,Topo snap on mesh,symmetry axial.
I would like to replace Tspline by subD in Wip 7 but It’s impossible at present.