Yet another proposal for improving “! _Blend surface” and ! _ChangeDegree.
A rational surface means that its control points have a variable point weight ratio. This causes lots of issues with the ! _Blend surface tool due to its reliance on identical point weight. The default point weight of free-form NURBS surfaces is 1 (identical for all control points), and Blend surface produces clean output geometry only with these.
“Loft surface”, on the other hand, ignores the point weight, thus it produces clean geometry even if the input surfaces have a rational (variable) control point weight. In many cases, “Loft surface” produces superior quality compared to ! _Blend surface.
! _ChangeDegree
Attached here is a sample 3dm file that clearly shows the urgent need to fix the aforementioned weakness of both, ! _Blend surface and ! _ChangeDegree. The 3dm file was originally made by @Slim1 in the topic linked below. I only added some markings for the Rhino developers to get a better idea what causes trouble with the “Blend surface”.
STRUGGLE BUS (test it with Blend surface).3dm (893.1 KB)
There are two shortcomings of the ! _Blend surface tool:
-
Degree 1 surfaces. Even though a basic plane is the simplest possible NURBS surface, a “Blend surface” that uses it as an input produces errors and is unable to maintain the expected low amount of control points. If you compare that with
! _Loft, you will notice that it performs properly, unlike! _Blend surface. I already made a request to fix that bug in an earlier post here (the end of post #25), as well as in other very old topics since the Rhino 6 and Rhino 7 times, but it’s been years since then and unfortunately the bug is still not fixed…
Rhino 7, for example, produces a “Blend surface” with 12 control points instead of 4 control points. How does Rhino 9 WIP perform here compared to Rhino 7? Is it any better?
For some reason,! _Blend surfaceloses the ability to use “Interior shapes” if the input surface is degree 1 or rational (even if the amount of control points of both input surfaces is identical). -
Rational input surfaces. As soon as the
! _ChangeDegreeis applied to the bottom surface marked with #1 to change the degree in the V direction of from 1 to 3 (to match the same degree as the opposite surface #3), it produces a rational surface with random variable control point weight. In my opinion, this tool must be fixed to preserve the point weight to 1 once it detects that the original surface is totally non-rational (control point weight = 1).
And this is an alternative 3d file used by me in the video below that also shows how the ! _Blend surface fails due to the use of a rational surface as an input:
Fix the Blend surface tool.3dm (5.9 MB)
I also captured a second video where I made a more detailed overview of the bug:
Once the large bottom surface is modified with the “Change degree” tool to match the same amount of control points (4 total) like the opposite surface, it becomes rational, which is causes lots of troubled with certain modeling tools, such like “Blend surface”. The solution is to either:
a. Set the control point weight back to 1;
b. Use the “Rebuild surface” tool. “Change degree” produces errors, so I recommend to be careful with it;
c. Use “Loft” with tangency option to both sides.
@Gijs @brian
Request: Please, add the above conditions to the “Interior shapes” section of the Help topics for “Blend surface”, because the former are get disabled even if just one control point has a weight other than 1. Not having this particular condition well documented leaves lots of Rhino users guessing what’s wrong with their geometry…
