SubD/ extrude filleted shape strangeness

I’ve been playing with SubD now for months and liking it very much. After years of using TSplines, Fusion360 and even Hexagon, it’s great to see Rhino creating this set of modelling tools. In any case, in putting SubD through its paces, I am finding some weird things happening. When creating a simple square with rounded corners, and then extruding it as a SubD surface the corners sometimes invert, get twisted or just become ragged. Has anyone else seen this?

Hi - I haven’t seen anything like that before. Could you please run the Rhino SystemInfo command and copy-paste the result here? Thanks!

Try running the command TestSubDFriendlyRebuild on the curve and then extruding the rebuilt curve as a subd.

sorry for lagging on this…
"Rhino 7 SR0 2020-3-11 (Public Build, 7.0.20071.05245, Git hash:master @ 9de0cf84238aa0c334831df29d24be49fa879000)
License type: Commercial, build 2020-03-11
License details: Cloud Zoo. In use by: j.w. ()
Expires on: 2020-04-25

Windows 10.0 SR0.0 or greater (Physical RAM: 32Gb)
Machine name: BIGSTUDIO2

Non-hybrid graphics.
Primary display and OpenGL: NVIDIA GeForce GTX 1070 (NVidia) Memory: 8GB, Driver date: 10-16-2019 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 440.97

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: Height

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 10-16-2019
Driver Version:
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8 GB

Rhino plugins
C:\Program Files\Rhino WIP\Plug-ins\Commands.rhp “Commands” 7.0.20071.5245
C:\Program Files\Rhino WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 7.0.20071.5245
C:\Program Files\Rhino WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 7.0.20071.5245
C:\Program Files\Rhino WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 7.0.20071.5245
C:\Program Files\Rhino WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 7.0.20071.5245
C:\Program Files\Rhino WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino WIP\Plug-ins\Displacement.rhp “Displacement”

thanks Travis…I tried “TestSubDFriendlyRebuild” and re extruded as a subd, but found the same problem

hi @sculptn can you post the curve?

Here you go. Sorry for the delay. It’s been corona crazy at our house.WeirdCurve-SubD.3dm (130.7 KB)

The curve is the highlighted one

Did you try lofting your initial curve in T-Splines? Because it doesn’t look any better.

While there are certainly exceptions, I try to keep my Sub-D geometry free from anything that has to do with fillets for as long as possible. The rebuilt curve, as suggested by @Trav, worked fine in my case. However it has quite a few additional control points.

What works nicely in T-Splines is the following:

  • instead of a filleted curve, use a square and place edges where you want more definition.
  • split the squares with the _tsSplitCurves command
  • and then _tsFromLines

20_03_19_nice_t-spline.3dm (210.3 KB)

What’s confusing is that TestSubDFriendlyRebuild really messes up a simple input curve without fillets:

Following a similar, fillet free approach as described for T-Splines, I used MeshFromLines and ToSubD to create this:

20_03_19_nice_subd.3dm (92.8 KB)

My technique for this would essentially be the same as Martin’s. More edges in the SubD are needed at the ‘fillets’. Here’s a video…

Alternately, you could rebuild surfaces to have more divisions and then ToSubD > Join. For this shape Bevel is just a little faster.

1 Like

Martin, Brian,
Thanks for the fast replies and the work arounds. They seem very straight forward. The thing was, I was just trying to put the SubD commands to test and when I saw that the _ExtrudeCurve command now provided output=Subd I wanted to see how true the extrusion would be. I remember in tsplines when I would do match curve I never really got an exact match but pretty close. I thought I’d see the same here with the extrude command. I wasn’t expecting the squiggles on the corners that I saw. Brian, is the thought from McNeel that the user wouldn’t need to do this smart work around of extruding sharp features and adding “fillets” through more control lines later or that the extrude command interprets filleted curves and figures this out for the user during the extrude? I can do the work around I’m just curious what you want the intent to be, Thanks you guys, Jeff

I get the point of testing a command but honestly my question is more like why would people always want fillets? Square blocks with fillets? If that’s your interpretation of industrial design then please go ahead…

There are certainly situations where NURBS with fillets are better than SubD and vice versa… I think one has to adapt the workflow depending on the requirements…

You’re right I think, the default result is not that useful without having a ton more points on the curve and making it SubD friendly with Rebuild. I filed this as Thanks.