"Match surface" needs improvements. Here is why

In this example, the matched surface was unable to precisely follow the extracted isocurve, making the resulting shape unusable (or at least requiring extra work to trim the unnecessary extended area at the right side).
The issue is even bigger if the surface edge is matched to the bottom surface by skipping using a guide curve. Note that upon moving the selected point to the left side the surface actually goes to the right side in a way that does not seem predictable.


Hello - my guess is this will all improve with a non-rational target surface.


Yes, it works better on Degree 3 surfaces, but the problem persists with models such like pipes, bottles, glass of water, car fenders and basically the kind of geometry that consists a true arc shape (Degree 2). Could that be fixed in the future? The unpredictable behaviour of the tool basically forced me to stop using the “OnSurface=On” option in these situations.

Hello - I think there is a bug track item or two that deals with this - I’ll have a look. I think it is the rational part, and not the degree, that makes life difficult here, btw.


That deviation always happened to me while modeling matched transitional surfaces on pipes, bottles and car fenders that were using Degree G2 surfaces made out of arcs or circles. From my understanding, Degree 2 surfaces must be rational (true arcs), right?

Hello - - NURBS arcs in Rhino are indeed made as degree 2 but what makes them shaped exactly is the control point weighting. You can ChangeDegree to 3 but these curves will still be rational. (and I am betting, still problematic for MatchSrf in some cases.)
FWIW, I find that if I need a non-rational arc approximation, degree 5 with 6 points per quadrant makes a very close approximation.


1 Like

Degee 2 curves and surfaces which are exact “conics” including circles, arcs, spheres, ellipsoids, etc are rational, but there is no requirement that all degree 2 curves and surface be rational.

If I understood correctly, that means 24 control points total. I just tried the following settings (Circle > Deformable > Degree=5 Point count=24 > Diameter = 40 mm) and they returned a very good approximation, as you mentioned above.

Diameter = 39.9997300 millimeters


ID: dae37ceb-a360-4ce6-962e-57079e9f27d8 (5130)
Object name: (not named)
Layer name: Default
Render Material:
source = from layer
index = -1

Valid curve.
Periodic NURBS curve
start = (20.0000000,-0.0000000,0.0000000)
end = (20.0000000,-0.0000000,0.0000000)
degree = 5
control points: non-rational, count=29 (5 duplicates)
knots: uniform (delta=0.2617994), domain = 0.0000000 to 6.2831853

People who do car and product design modeling in Alias usually use circles with 8 control points to approximate arc circles. But 24 points is really better.

If the approximation is close enough, could Match surface match to a changed surface under the hood? Or would that cause join issues with the original surface?

Yes, it is not only close but has a more constant curvature graph compared to degree 3 with the same points - the deviation may be close in both but I like the degree 5 graph better.


What bugs me is that Rhino will put the matched surface beyond the length of the target curve, meaning that “Match surface” does not take into consideration the curve end.