Rhino has always been associated with failing fillets. The only reliable way to make high quality (G1 or better) fillets is using the XNurbs plugin. On the other hand, Rhino SubD objects always have perfect fillets. It seems possible to make reliable, high quality NURBS fillets with the help of the SubD kernel.
Andrew, you who is digging up tons of different software packages should know that this is not just a burden Rhino has to carry.
i read somewhere not too long ago that it is being considered integrating subd match to nurb if i can remember correct, if not it might be a good idea anyway.
also something native like x nurbs would be lovely for those working with nurbs.
Sorry for bumping up this old topic.
I would greatly appreciate any future efforts towards this possibility.
Having controlled (I mean with radius input) fillets on SubDs would be something awesome.
Another line to wish list for V10, please?
this is a feature in the WIP and is currently in development.
subdmatch is the command.
you can match to a nurbs surface edge or curve up to the limit of the subd resolution. This will be useful to get subd’s “close enough” for further development or conversion to nurbs etc.
keep in mind that in order to get an exact match, the subd would need to be subdivided and refined much like the refine option in nurbs and this is usually not desirable in Subd as it makes for too many patches.
give it a try and let us know whats working and what is not.
Hi @theoutside ,
Sorry, I meant the topic, fillets on SubD.
I know the subdmatch command, it’s great. But my point was about fillets.
yep, no plans for that for v9.
@pierrec can comment on if this is even possible.
you probably missed that this topic is 5 years old? you should not assume that people who show up here regularly are being in a complete coma. sorry your post made zero sense.
I don’t see how fillets on NURBS-based B-reps built with a SubD patch in the “interior” of the fillet will solve Rhino’s filleting issues. Sure, the new SubD patch would be smooth in its interior, but in most cases it wouldn’t be able to smoothly match the NURBS faces around it. See where SubDMatch is able to exactly match a NURBS surface (more or less when the NURBS is non-rational degree 3 with uniformly spaced knots, and 0 cross-boundary curvature on its boundary).
Conceptually, a fillet needs three steps to succeed:
- Offset filleted edges onto the neighboring surfaces (or pipe the edges and intersect with the surfaces), to build rails bases for the fillet.
- Define a surface (or collection of surfaces) based on these rails, that connects with some continuity target to the neighboring surfaces. Note that not all filleting methods actually build out that surface, it might just be a mathematical target shape for the next step.
- Rebuild a valid B-rep by joining everything back together, or editing the original surfaces so they match the target shape of the fillet from the previous shape and rebuilding new edges.
Each step is a complex algorithm on its own, with its own edge cases and failure modes that can bring down the whole filleting operation.
From what I understand from the original post in this thread, we would be using SubD patches in step 2 to build better fillets. As I said above, I don’t think SubDs are a good choice for that because they cannot connect well to most NURBS surfaces, and it also would do nothing for the other two steps.
On the other hand, there are some amazing improvements to NURBS fillets (both FilletEdge and FilletSrf), and NURBS patches in the WIP. Maybe that’s what @encephalon was alluding to when he said that things have happened since this thread was created. In any case, go check them out if you can!
I was mostly wondering, if there is possibility to have proper fillets (with numerical radius, not just beveled edge) within SubD itself, not even involving the NURBS.
what would be really nice @pierrec “mr. subd”
if _bevel (command) could have an option “distance by fake radius” (work in progress title ;-D)
