Wish: trim subd when boxy/flat

Right now if I try to trim a subd face or faces, it automatically gets converted into a polysurface. That makes sense when subd is displayed as smooth (otherwise the result would be super weird) but when it’s displayed as flat, I’d like to be able to use regular trim tools. I’ll attach an example.

Untitled.3dm (3.0 MB)

2 Likes

there are a few possible workflows to accomplish this:

shear

if all edges are parallel - as in your example, _shear will do a nice job.

project

create a surface and use _project with a custom direction.

meshTrim

_extractControlPolygon → you will get a mesh
_MeshSplit with n-gons.
_toSubD
this is the closest you can get to your wish

InsertPoint

you can create some helpers / intersection points or try to work with appearant intersections (which might be erroe-prone).
then _insertPoint - the new edge
then delete the un-needed edges / vertices / faces.

combine above (recommended)

my guess the best / most versatile you can do:
_extractControlPolygon
_project your line onto the mesh
_insertpoint
delete un-needed stuff
(and handle imprecision / special cases manually)

subDMatch

wip / v9 will have this new function - not 100% what your are after.

wishes, workflows, options macros

After many yeasrs with Rhino and with this forum - i struggle a lot with wishes that are very specific like this one. I think its important to stay creative with combining most versatile commands into efficent workflows - not hoping that there is a ready made command for all of those. - otherwise users will not learn this creative combinations, use macros and so on. And new users will be confronted with more and more commands and options - which is not a gain.
I totally agree that its a pity, that many commands are object-type specific - and for split and trim subDs are stubborn. But splitting a subd with a line, will ask the next question - why not with a curve, a surface, …why only in a parallel view not in perspective… you will end up with a lot of special cases that are not clear to handle as the users expect.

compromise - copy Crease Info

as there are other commands that are possible with mesh but not subD, maybe it would be nice to have a command that supports subd->mesh->subd and keep or copy crease information.

@pierrec is the right person i guess to comment on this topic / wish

my 2 cents

kind regards - tom

1 Like

Wow, that’s a lot to respond to. I really just wanted a faster way to accomplish this task that I encounter all the time, not a slew of work-arounds, but let’s see which of those work for this one very specific and narrow case:

Shear - does not work because it can only move those points vertically and I also need them to move in a bit to replicate what I’d get if I used a trim line. I can, however, get there by using a combo of Shear and scale1d, if I plan it out well. Not as easy by a long shot as trimming with a line, and my example is simplified - and there are other times I’d like to just trim a subd face with a line that this example doesn’t cover.

Project: Almost does it (not quite though), but again not as easy as using a trim line.

MeshTrim: Unworkable b/c my subd loses all creases . Alternatively I can extractcontrolpolygon and then project curve onto it and then snap my subd to those points. Still tedious, but it does work.

InsertPoint: Would work if Rhino recognized those intersections, but I can’t get the points to snap to any intersection. Maybe another wish?

Combo: Similar to what I wrote above, but still way slower than using a tool that Rhino already has that should work on subd flat surfaces.

SubDMatch: Won’t work with flat mode, so not useful here

wishes, workflows, options macros: I run into situations using Subds over and over where I would find it faster to just trim the flat face. I can always work around it, but when it happens over & over, eventually one tires of it and wonders why a tool that works on other faces in Rhino without issue can’t work on subd faces. I’m not asking for a new tool, and honestly I wasn’t asking for your opinion about this - I was asking the developers to extend the capabilites of an existing tool to make my workflow better.

compromise - copy Crease Info: Sure, or those mesh tools could just function on both meshes and on flat subds.

Hi @phcreates ,

I know you don’t want workarounds :slight_smile: ! So first I’ll just say this request is filed as RH-54108 Split support for subd that keeps the subd and I’ve added your request there as well.

Now for my workaround, because I can’t help it!

1 Like

Thanks Brian - your work-around is fairly fast for this case. And thanks for filing the request. I’ll try to add some other examples when I run into them.

Better example attached. In this case, the best work-around I can think of is a variation on Tom’s suggestion, which is way slower than trimming with a line of course:

_extractControlPolygon
_project your line onto the mesh
_select each subd point and move it to the projected line, or use insertpoint and delete extra stuff

Anyway, just wanted to give a better example.

better example.3dm (3.0 MB)

ok so it seams that nowadays solutions need video-support:
here is my shear workflow:

2 Likes

Shear or gumball is not a solution. What if your outer border is not flat? :man_facepalming:

I too end up always relying in workarounds… the quickiest for me is to extract all control net lines and intersect them with my splitting object, then manually drag control points to the intersection.

It’s quite a shame that we still don’t have a function like this after years. SubD are awesome but McNeel really went “good enough” and forgot about them. (c#, custom packing, etc etc)

I also think that this request should be solve-able by a developer in very short time (unless SubD still have sad and incomplete methods beneath…)

Anyway, in the Youtrack entry it seems you are overthinking it.
Just split the SubD as it is a mesh, the flat control net, forget about applying logic from looking at it as smooth.
When you split a face, you want to keep the original edges directions of the control net (not the smoothed version).

A simple per-face logic should be enough. Divide and conquer.


Sorry for the hard words, but I think it’s true.

Brian beat me to it… gumball alll day for this type of stuff.

hotkeys for relocation and resetting gumball make it even faster.

1 Like

FYI @pierrec is working on a new feature called SubDKnife that I believe will help here but it’s not in the WIP yet. RH-49918 for future reference.

6 Likes

Insert points can get you a new edge that you can then use, then simply delete the unused faces, (knife would do essentially the same thing, but with a smoother UI)

I personally like the gumball move/ rotate trick better as it keeps you topology in tact, but you do you… I just share the tricks, you choose which birthday party to use them at.

1 Like

Gumball move/rotate/scale trick is great, but only when the edges to modify are parallel. Doesn’t help with my other example though -

for that I’d simply add points, which will create a new edge and then delete the lower faces.

Right, but I’d have to eyeball it because Rhino won’t give me the apparent intersections. Which is often ok, but if I want the result to be completely flat then I’ll need to then flatten it - none of this takes a long time, but it sure would be easier if I could just trim with a line.