MatchSrf wishes

Make it possible to match a surface to a target edge on one end, and target surface (OnSurface) on another end. Currenty, that is not possible. The user is forced to first use only one type of matching, then the other, thus the History recording on of the first matched edge is lost.

It is possible ( with restriction of using the same settings for each edge). The target curve for the first surface can be its edge

I can’t match with G1 or G2 to one target surface edge and one target surface (OnSurface) simultaneously while preserving the History on both sides.

The other issue is that matching of multiple surface edges does not support individual continuity settings for each edge (forced same settings, as you mentioned). In Alias, Solidworks etc the user is able to change the continuity type by clicking on tiny icons directly on the surface edges.

Not with a curve no, only with the edge as curve, but still it is very limited, I agree.

Edit: Matching to two surfaces and two curves does support multiple matching up to degree 2, but has its own quirks. So that means the above should be logged as a separate bug.

@Rhino_Bulgaria hmm, I’m confused now. I tried to create a sample of this not working but now fail to do so.

See attached, two different cases of Matching OnSrf. One is two curves (G1) the other is a curve and and edge (G2) and history seems to work as expected

MatchSrf - two - OnSrf.3dm (151.4 KB)

I assume you mean Match / MatchSrf working on two different ends at the same time, is that correct?

Yep.

Matching curves on both ends is on the list as:

RH-72650 Match curve on other end breaks history on first end

for surfaces I’ve made the folowing YT

RH-88974 MatchSrf: Match to two surfaces with History

A post from several weeks ago with suggested enhancements to MatchSrf, including how to deal with coners when different levels of continuity are requested. Selecting both curves and surface edges is item B.

Full text is:

MatchSrf when used to match multiple edges needs several enhancements to make it much more useful.

A. Select differing levels of continuity for each edge: none, position, tangent, curvature.

B. When matching multiple edges be able to select a curve as the target for one or more edges to be match. Selecting a curve would of course limit the continuity for that edge to position.

C. Simultaneous matching rather of the multiple edges rather than than the apparently currently implemented sequential matching.

D. Prioritization and averaging when when two or more target surfaces to be matched are not compatible. By “compatible” I mean it is not possible for a single surface to simultaneously match two surfaces near a corner with the requested level of continuity.

First priority would be to match position on all edges with position, tangency or curvature continuity requested.
Second priority would be to match tangency on all edges with tangency or curvature continuity requested.
Third priority would be to match curvature on all edges with curvature continuity requested.

At corners where the target surface edges are not compatible with the requested levels of continuity, continuity would be satisfied on average.

Suggested proceedure is to start along the edges with continuity requested and work inward:

  1. For the control points along edges with continuity match requested set those control points for position continuity with the edges of the target surfaces. If at a corner the target surfaces are not position compatible set the coresponding corner control point to the average position of the target surfaces.
  2. For the control points in the rows/columns adjacent to the edges with tangency or curvature continuity requested and which have not had their position set in step 1 set the position of the those control points as needed for tangency continuity. Use an average position for control points near corners with incompatible target surfaces.
  3. For the control points in the rows/columns adjacent to the edges with curvature continuity requested and which have not had their position set in step 1 or step 2 set the position of the those control points as needed for curvature continuity. Use an average position for control points near corners with incompatible target surfaces.

The same bug with broken History on the first matched end, followed by matching the opposite end, also happens with the curve matching.

For some reason, your 3dm file destroys some of my custom display modes. It adds an excessive amount of contrast to the environment maps that should not be there… Some of the display modes suffer more from this bug than others. The most affected display mode is “Car paint 8”.

Rhino is notorious with its banding in the grey shades, and this particular case is a good example of that. My viewport looks like having a limited 4-bit grayscale instead of 32-bit…

Car paint 5, 6, 7, 8.rar (599.3 KB)