I’ve finally gotten around to experimenting with SubD and I find that OffsetSubD often fails or returns an invalid SubD.
- OffsetSubD fails to create a solid from a complex object with multiple open loops.
- The object created from OffsetSubD is disjointed with multiple parts still stuck together as one SubD. It would be better to have the ability to select parts individually without deleting faces.
- Cannot run the Bridge or Stitch command on the SubD offset.
- After running the RepairSubD command, the SubD object returned is messy and still disjointed.
OFFSET FAIL.3dm (585.6 KB)
In your file, what is the original object, before you offset it?
Also, wow, yeah, five minutes spent trying to find workarounds to get a good offset has been interesting. for some reason both face ring selection and various deletions and _extractsrf attempts are all super buggy too.
I started with a SubD Sphere.
When I have time I’ll probably work backwards to find when an offset works or fails as objects get more complex.
At least one reason it fails is because there are stacked vertices in that model. If you separate those the offset will work. Or subdivide the model twice so that there are no more stacked vertices and then do the offset.
If this is a reason for subd to fail it should be detected though by the offset command. If you extract the control polygon and try to offset the mesh, you can get an idea of how it fails.
In my limited experience it starts getting weirder the more complicated the edge intersections get.
Here’s the simplest example I’ve had break _OffsetSubD so far:
I think the problem condition is the X intersection between two holes.
Offsetting them, with the “solid” option does this:
Note that there are holes in this SubD, but whatever’s going wrong has also broken my pink naked edge color. The properties panel says it’s an open SubD, but I can’t use _Fill on anything that appears to be an opening.
If I offset this object without picking the “solid” option, I am able to get what one would expect to be the result. and I’m able to bridge the two SubDs into one:
Though at the X intersection holes, when I bridge with the crease option, there’s one crease on the inside the X that happens when it shouldn’t.
Obviously, as with offsetting polysurfaces in Rhino, I don’t expect perfect results every time. But this is a very simple condition that maybe can be addressed. The bridging quirk is really minor, but the inability to do a solid offset with a usable result when adjacent holes have an X intersection seems like something worth fixing.
If anyone at McNeel is curious, here’s the file: These Pants Break OffsetSubD.3dm (233.4 KB)
@Gijs - Yep, once I subdivide the SubD twice I am able to get a closed offset.
@Max3 - Wow, thanks for doing this. Your file illustrates the bugs in I’m experiencing with _OffsetSubD better than my example. Also, your the black/blue scheme is rad!
I had already done most of it. Just broke it out into before and afters. It was the beginning of a drawer knob design I’m going to CNC out of walnut.
Your bugs are more complicated than mine, and Gijs is probably giving you more useful information for your problem.
But if you have time, see if you can cut out small sections of your objects and replicate the same problems your having in a form where we can isolate individual different conditions that cause failures.
I’ll defiantly do that next time procrastination sets in. Thanks!
Thanks for the report, I filed these two models as https://mcneel.myjetbrains.com/youtrack/issue/RH-57226 for the devs to investigate.