While the default behaviour of ! _VariableFilletSrf (and its counterpart ! _VariableBlendSrf) to extend the resulting surface at either end is usable in rare occasions, in 99% of the cases this is an unwanted outcome that forces the user to spend a lot of time into splitting and shrinking each individual surface to limit its size to where it ends exactly on the input surfaces.
This is why, I think that it would be wise to add a “SplitToEnds” option in the Command line, meaning that the resulting fillet/blend surface will be automatically split and shrunk to where it meets the end of the input surfaces. That easily saves multiple mouse clicks on each surface. Now imagine having to deal with plenty of fillet/blend surfaces that require manual splitting due to the weird automatic extensions that are rarely needed… Those extensions often times won’t follow the logical curvature of the input surfaces and instead turn to the opposite direction, which is another reason why they are unusable anyway. Here is an example:
The manual splitting process also leads to possible errors due to inaccurate snapping to the end of the variable fillet/blend surface, where the mouse pointer could easily snap to “Quad” or “Int” instead of “End” (in case that they are all active), eventually forcing the user to do even more mouse clicks to turn off any snap other than “End”, then bring back his or her normal settings for the OSnap. Notice the different coordinates.
Thanks for adding this to the pile, @pascal ! I would love to see two separate options like that instead of a common one, probably named “ExtendEnd1” and “ExtendEnd2”. Those should allow change at any time while the command is not completed and the surface is still in a preview. That will let the user choose between full extend (“ExtendEnd1=Yes” and “ExtendEnd2=Yes”), no extension at all (“ExtendEnd1=No” and “ExtendEnd2=No”) or two alternatives with one extended end and one split end (either “ExtendEnd1=Yes” and “ExtendEnd2=No”, or “ExtendEnd1=No” and “ExtendEnd2=Yes”).
Many years ago there was a plug-in for 3ds Max called “Power NURBS” that allowed a certain degree of modification of the fillets and blend surfaces via changing “Curvature influence”, “Blending”, “Tangent scale”, “Curvature scale”, etc. Really cool set of tools that were ahead of their time.
For example, setting “Tangent scale” to 0,5 and “Curvature scale” to 2 means that the distance between the 2nd and 3rd control point will be 4 times greater than the distance between the 1st and 2nd control point. Unfortunately, after years of requests Rhino’s “Blend surface” still lacks that option.
The “Blending” option in “Power NURBS” allowed to set a custom distance from the end of the blend surface where it will match to the adjacent surface (imagine having an integrated “Match surface” inside “Sweep 2 rails”, “Blend surface”, “Loft”, “Network surface”, etc). Rhino’s only alternative to this is the ability to match the 4 sides of “Network surface”, though the user only can choose between G0, G1 and G2, unlike “Power NURBS” that lets you choose the distance of influence.