Problems with MatchSrf

Hi everyone,

been working on a surface for a drone, and can’t quite pull off matching the surface to each other, regardless of how the surface is built or rebuild, there is always a visible knot with the zebra option turned on, or just deformed surface flows. This problem occurs also when all surfaces are joined with their naked edges, so I’m really frustrated non why it doesn’t work.

Can someone tell me what I did wrong?

Some reference pictures and the 3d data;

Drone_update.3dm (15.8 MB)

Hi Alex, is this more like what you want?
Drone_update_Maybe.3dm (257.8 KB)

But I’d be inclined to simplify the construction if possible


I’d say it’s cause the edges are naked :tipping_hand_man:t4:

So, of course you probably want to match them.

Yes, the key is to get them within tolerance so they will close up. But then there’s also the whole tangent thing and G1 G2 continuity stuff.

Also, Rhino might just graphically show a kink or knot for no good reason too. So maybe consider that.

In the long run, the manufacturing process will be a whole nother can o’ worms.

I joined it and still see kinks

Kinda looks the same as the original. I’d imagine it just needs to be closed up to show less kinks.

maybe loosen up tolerances, or match the edges tighter…

Hello- where do you see kinks?


I loosened up the tolerances on the original, and rebuilt the edges, then got them to join, but made it worse and maybe exaggerated the kinks.

looks like there’s a few pin holes though.

just to point out a few:

I mean I’m not a zebra expert, and not sure what the design intent is. It looks as though the facet around the perimeter is meant to be there so far.

Hello - see

for more info on how to interpret zebra.


1 Like

Might need to re-network the surface in order to be able to match it better to multiple adjacent edges.

Since this particular surface appears to be trimmed, it will be difficult to try matching the trimmed edge.

Maybe I’m misinterpreting this list data too. If turns out all surfaces are trimmed behind the scenes with some brep maths then my mind will probably :exploding_head: :sweat_smile:

This is what I assumed the intent was:

The question is which edge to move if not both:

found some crvs hiding. I’d be making some assumptions here:

next, I’ll probably be building some network srfs and doing some trimming n’ such.

It wasn’t symmetrical like I thought, so I had to stop in the direction I was going…

I also had a go at it, this is tricky stuff to get right. Note that the input constraints are such that G2 transitions to the other surfaces are not guaranteed, since the base shape has a G1 continuity at the edge surfaces.With some cp point massage, starting from single spans and later on adding some knots for matching, you can come close though:

drone-top.3dm (411.6 KB)

tolerance / accuracy: 0.005

That being said, if you need looks of a single span top surface, input constraints need to be loosened.

1 Like

I assumed G1 was sufficient since the straights and arcs of the base surface are tangent.


1 Like

For this shape the implications of the points with curvature discontinuities at the edge are stronger than “not guaranteed”. The edge discontinuities will result in “creases” with curvature discontinuities from the edge discontinuities across at least part of the surface. (With a different layout isolated “conical apex” type singularities at the edge discontinuities may be possible.)

1 Like

I meant the same, n that it cannot be G2 across the whole surface.

A few points:

As @Gijs pointed out - you’re going to bump up against the G1 nature of the geometry around the edges. This geometry here will constrain your ability to make a G2 junction everywhere, thereby limiting just how nice your transitions can be:

One thing that will have you chasing your tail is the lack of a central curve to build everything off of. I made a degree 5 single span curve/extrusion that goes end to end to match all my centerline geometry off of:

Your patch layout is also a bit sub-optimal - a little tweaking and simplifying will help greatly. I moved around the central surface so that it’s overbuilt relative to what you had:

This makes your life wayyyyyy easier when dealing with matching at the trimmed edge.

Your surfaces are also more dense than they need to be - this is creating kinks in your surface that don’t need to be there and reduce quality. To my eye, there’s nothing in the design intent that warrants anything above a degree 5 single span curve/surface for primary surfacing. I went up to 6x6 for my corner surfaces, just to get the matching to where I want it, but that’s as high as you need to go. You’ll get a much smoother Zebra this way:

That’s close to what I’d call done - it’s just a matter of massaging a few verts to take it all the way to flawless.


Drone_update_SGVersion1.3dm (8.3 MB)


I can’t thank you enough guys, a tremendous thank you to all of you for this great help! Just shows me that I should improve my surfacing skills in Rhino

  • Alex

@Alex39 make sure to watch @sgreenawalt 's video’s on youtube, in particular the primary surfacing videos