Autodesk Alias seems to be an industry standard for Class-A surfaces (single span NURBS) in automotive and product design.
Never used it myself but @TomTom can perhaps elaborate from an automotive perspective.
Autodesk Alias seems to be an industry standard for Class-A surfaces (single span NURBS) in automotive and product design.
Never used it myself but @TomTom can perhaps elaborate from an automotive perspective.
I havenāt read this thread fully but it seems that @JoergH wants to convert multiple Bezier patches to a single Nurbs patch to get the continuity in between for āfreeā.
Since I have worked on Bezier-only-models the last couple of years, I do not clearly see the benefit of this.
The only reason I made use of such functionality is when merging surfaces (without smoothing(?) option on) in order to simplify projecting on a referenced shape. Although I later found ways in preventing this as well.
ā¦ It is just that its not really helpful. Because the reason of using Bezier surfaces (at least in automotive design) is to have control on the curvature. It is very hard, up to impossible , to control transitions inbetween Nurbs segments, since you are working with highly reflective materials. So even tiny irregularities can become a problem. Almost any uncontrolled transition is a problem!
Just create a multispan nurbs curve and try to control the curvature graph. The curvature graph basically is equal to the reflection you get. Less kinks in the curvature graph give you a smoother reflection!
I can only repeat this on and on: G2 transition is not everything. Its also about the overall curvature flow. Having G2 but wavy reflections, bumps or flat spots is not helpful at all.
In other words, matching Bezier surfaces gives you much better control.
Behause most of the time you donāt match by averaging. Instead you match a surface of lower priority to a surface of higher priority.
Regarding the implementation of such functionality: You can build it quite easily if you know how to script and if you have no problem in manually choosing the direction. Just feed in cps in order(remove duplicates) and feed in the right knot vector, which is a logical concequence of the degree. You can create a Nurbssurface from scratch.
Nevertheless youāll need some experience with coding to implement such functionality, if you donāt learn it first.
You cannot be successful in mastering Grasshopper without programming, at least in automotive design. The most challenging part of my work in the recent years has been the need to implement taylormade functionality and to understand the maths behind. (Unfortunately most of the people around me did not even notice, which is one of the reasons why I left design engineering recently.)
Hallo Tom,
I was expecting this kind of reaction, since itās quite the opposite of what you are doing in car design. I also use bezier surfaces as much as possible. This is also just an intermediate step in a very specific problem, so generally I fully agree with you.
The benefit is reducing the total number of control points while preserving the exact shape of the curves/surface, and retaining the degree of continuity between āBeziersā if the control points are subsquently moved. Currently Rhino does not have commands which merge the curves or surfaces and reduce the number of control points to the minimum necessary to preserve the shapes. (The exception is in some but not all situations with curves the use of Match with the Merge option will result in a multi-span curve with the minimum number of control points.)
First a reminder that any āBezierā curve or surface of any degree has an exactly equivalent single span NURBS curve or surface. The shape of the curve or surface is exactly the same. Note that the NURBS curve or surface will be the same degree as the Bezier curve or surface and will have the same number of control points. The exact equivalent of degree 7 Bezier with 8 control points is a single span degree 7 NURBS curve with 8 control points. The only difference between the Bezier curve and the equivalent NURBS curve is the details of the mathematical equations used.
Multiple Bezier curves which have common end points have an exactly equivalent single multi-span NURBS curve. The number of control points of the muli-span NURBS curve will be less than the sum of the number of control points of the Bezier curves. Depending on the degree of continuity between the curves the reduction in control points can be as much as the number of spans x degree of curves. If the degree of continuity between the curves is less than the degree of the curves - 1 then multi-knots will be needed to preserve the shape but the total number of control points will still be reduced.
Similarly multiple Bezier which share common edges and are in a ārectangularā arrangement have an exactly equivalent multi-span NURBS surface, and the number of control points of the multi-span NURBS surface will be less than the sum of the number of control points of the Bezier surface. If the degree of the continuity is less than the degee of the surfaces - 1 then multi-knots will be needed to preserve the shape but the total number of control points will still be reduced.
Rhino already has commands which merge curves and surfaces which appear to do what you suggest. Unfortunately this process typically results in more control points than required. Rhino does not have any commands which automatically eliminate knots and control points in multi-span curves and surfaces which are in excess of those which are required to represent the shape. Currently a user has to selectively use the RemoveKnot and RemoveMultiknot commands while checking that the shape hasnāt changed.
What is the difference in curvature graph for lets say a nurbs surface with 3 spans, and the same polysurface made from 3 matched bezier surfaces?
Rhino can remove the unnecessary knots from curves that are composed of lines and arcs . That is what the SimplifyCrv command does. But your basic point is correct Rhino should be able to do this in all cases.
I canĀ“t see any difference. Of course it would be better to replace the 4 bezier surfaces with one bezier of higher degree, if that is possible. But assume that I have imported the 4 bezier polysurface and I have to modify it without losing G2 between the surfaces. ( So in reality i donĀ“t have the b-spline surface, this is just the reference)
So: B-Spline Suface and 4surface ābezierā polysurface are geometrical identical. In Bezier form I have 64 controlpoints. In B-Spline just 25. If I modify the B-Spline the spans stay G2. In Bezier Form I lose continuity.
I hope I can answer to all recent post with this answer:
I think we slightly talk about another use case. I fully agree on all what has been said, but I think it misses the point why Beziers (or defacto single span Nurbs) are still used in automotive design. At least from my understanding.
First of all controlpoint reduction is extremly important, and reapproximating of a complicated shape is important. But not at all costs.
A car skin is not parametrically build like the rest of a car, so one important aspect is to keep a skin part as changeable as possible. I mean this is what āclass Aā is all about. You slightly change a shape until all reflections flow perfect (under tight technical constrains). You very often slightly change some cps only. This kind of modelling is actually not very useful for most other industries . Its not even more challenging, just boring. But its required due to high quality demands (even often to strict in my oppinion, but thats another topic)
So yes: Having less cps, the better control on the shape. But again in the end its about the reflection, and by reflection I do not mean the transitions only, but also on the overall flow. This is why its also about surface priority and its transition. Rhino knows about ca. 30% of all to me known matching options. One reason why Rhino is not primarily used. You change, you rematch. This is boring. But its not equal to making one multispan out of it.
Coming back to the example of @JoergH, This not how you build with Bezier patches. You have a hierarchy of them. Main surfaces, huge surfaces representing the areas with low curvature, creating a theory shape. Ideally all of them make up a positional (theory) matched āsolidā. Then there are transition surfaces(blends) and fillets as a third category. Of course if you have more then 1 surface with equal curvature and orientation, you need to reduce them to one surface. But you will try to make it a Bezier patch then. You donāt want such curvature at all, you want smooth flows, so deviating for the sake of smoothing is better then exactly holding the unsmooth flow. This is why your example is a bit nonesenseš
That means, when modelling with single span geometry, approximation is more important then interpolation. And this is something Rhino lacks possibilites of as well. But other CAD isnāt necessarily better. Very often the user approximates manually. Build a simple 3x3 patch, pull to geometry, increase degree/order and continue with 4x3,3x4 or 4x4 and so on until a single span matches good enough.
Hi Tom,
I agree, my example is absolutely nonsense. Thatās just a geometry that has nothing to do with reality. But this is how our imported surfaces more or less look like. Itās just about fast editing such a bunch of imported polysurfaces, it has nothing to do with car design.There are no surfaces with high or low curvature that you can blend or match to, just a lot of bezier surfaces that form one bigger surface. Of course we would not design like this ourself.
Hello Jeorg,
Did you ever find a solution to your need as expressed on this thread? I find myself now looking at a very similar need to merge adjacent Beziers into a single NURBSācurves or surfacesā¦.