Proportional Changes in MatchSrf?

Has there ever been appetite to add proprtional matching tools in MatchSrf?

See attached gif. Workflows to be able to fix the other side, but to transform points in between those being used in the match srf command. sort of interpolating the transformation across the points.

Hello - I am not sure I follow 100% but, if you match a surface with History, and then move rows of points with DragMode>ControlPolgon, you can slide the tangent row in and out and maintain the match… ?


Usually in such cases I rely on “! _DragMode” (located on the “Point edit” toolbar) with the “Control polygon” option. It’s a very convenient way to move the selected control points along their tangent.

Hi Pascal, in this case I am just matching position - using matchsrf to quickly move, almost. I would’ve liked, after moving the top row into the desired position, for the middle row of points to have moved closer to the bottom row. Maintaining somewhat the original proportion / relationship of the points when they are evenly spaced in the beginning.

MoveUVN smoothing helps a bit here, but picture a case where the cross section isn’t just the degree 2 like here. Imagine there was a sort of UDT going on here whereby the point position relationships are sort of maintained after the match where 3 of the 4 edges are changed.

Hello - I think you need the EdgeMover hack. (9.8 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

Just make sure the surfaces are not trimmed, I just noticed it does weird things…



Hello, Pascal. I think that you should seriously consider making the “” hack a native surface tool in Rhino, because it does a wonderful job! I tried it on several occasions now and find it very handy, especially on surfaces with plenty of control points that make them difficult to adjust manually.

I found just one thing that could be improved. If the target edge or curve crosses in the opposite direction through the control polygon of the surface, then the control points get arranged in a slightly curved way and don’t keep their straight position relative to each other. But that’s just a minor thing. Other than that, your script is flawless and deserves to be included in Rhino by default! :slight_smile:

I set the script as a Right mouse button command on the “Refit trimmed surface edge” (! _RefitTrim) icon, because it has a similar function. :slight_smile:

1 Like

Yeah, that is wicked. However not quite what I meant - but close! Kind of like a soft, positional matcher? Flow with cps on seems to be the one, but it could be improved. (Goldilocks moment beckons)

MatchSrf does the better job of fitting to the curve.

Flow also does a bit more ‘kicking out’, even though the curves to flow from/toconverge very closely. Although, I could select fewer cvs to affect of course.


The convenience of MatchSrf and the EdgeMover is that you’re not fiddling with construction curves and stuff maybe stretching, as with the kick out above. More explicit, I guess I’d say.

How I would describe it, I guess, is that from the edge you select to match/move, all the points in the perpendicular direction get transformed the same way as the matched edge.

My comparison - match srf output

versus a sort of matchsrf / edgemover /hybrid.

Whatever transform is done to the matched edge, propogates perpendicular up the row of the cv (assume not refining match in this case, ive drawn three of the control polygons in white). Would be cool with G1 matching too - first two rows are moved to match a surface edge as normal, and then perpendicular point rows have the same transformation applied as the second (tangent matching) point. Then G2.

Another nitpicky thing would be, as well as a match edges by closest points option, to match end points, then by closest points. Quite regularly i am, for example, moving manually an end point so i can match ‘along’ the closest points. if that makes sense.

I know, I know, not Autodesk/VSR again…
But this is how matching with blend option works in Shape Modeling:

The blend option for matching is really what is missing from Rhino surface match to be on par…

Edit: This and the definition of edge endpoint conditions.


Ah, cool.

Unfortunately, I come after that generation, so i don’t know the first thing included in VSR. I mean I know it’s not a time consuming operation that I’m asking to have fixed, but a nicety. Plus, it can be easy to miss a small slither of surface at the end after match by closest points. So I guess I’m asking, can we have the option for the best of both worlds (match by closest points, between the endpoints, sorta).

1 Like

Unfortunately Autodesk Shape Modeling is dead for a couple of years now.
I continue using it, which is why I am still using Rhino 5 in parallel to version 6 and 7 .
I was asking for some form of blended matching to be included in Rhino’s surface match to at least get closer to Shape Modelings functionality.

1 Like

It’s a shame, logically speaking this sounds doable. But I don’t know. Maybe someone can hack something.

A blending option was also included in several tools (equivalents to Rhino’s “Blend surface”, “Sweep 2 rails” etc) the “Power NURBS” plug-in for 3ds Max like 10 years ago. It was especially useful for their implementation of “Sweep 2 rails” and "blend surface, because it allowed the user to set a custom distance at either end of the new surface where it would smoothly blend with the existing adjacent surfaces. Rhino’s own “Sweep 2 rails” only has “Preserve first/second cross section” option that will not take into account the tangency and will keep those two edges at G0 continuity.