Unable to join surfaces

The attached file is from the Rhino Level 2 tutorial and deals with creating a surface using the patch command. I am confused as to why I am unable to join the two surfaces. The patch settings were:

Point Spacing 1
U&V Spans 10
Stiffness 1
Adj, Tan. checked
Auto Trim checked

I have varied all these setting with no luck.

Patch Options.3dm (204.9 KB)

The problem is the patch surface at low densities just does not have enough points to conform to that wiggly edge within join tolerance. In general when surfaces do not join and it looks like they should, use CrvDeviation to see how far apart the edges are and where the biggest gap is. On this thing, with the points included, actually joining might take quite a few spans across, where the edges want to miss at the ‘front’ there. This is not a great example if you want to join the results directly, it is more to demonstrate the effect of the points and Stiffness. setting…


Thanks pascal. Good to know. Glad it’s not just me!


Again from the Level2 Tutorial, following the lesson on making a button, of the three methods described two of them (lofting and rail revolve) create surfaces that are able to be joined to the lower part of the button. The surface created by the patch method cannot be joined. What settings do I need to change to create a joinable patch surface? In the interest of clarity, it might be good to note this in the tutorial. I can’t imagine a case where you would model something like this and not want to join the resulting surfaces.

Button Domes.3dm (558.3 KB)

Hi Dennis- I am not sure what the inputs are for your patch, but, more spans would be helpful- keep in mind that Patch cannot contort itself to be within edge tolerance from any input- you do need to give it something it can work with. Your surface is quite distorted

In the attached, (30 by 20 spans, History enabled) you can Join the patch as the file opens, but if you update the surface by moving the red ellipse down a little, chances are it may no longer be within tolerance at the edge and you might need to re do it with still more spans.

ButtonPatchTest.3dm (174.8 KB)

But, as you’ve discovered, Patch can be fiddly. It makes a deformed, sometimes very deformed, trimmed surface.


I was able to get it to join using MatchSrf. That worked this time. Is that
generally a good solution with Patch?

Hi Dennis- in this case, MatchSrf from the lower surface to the patch worked because that lower surface is untrimmed. But keep in mind that the patch edge is what is ‘off’ and so matching to it with the original target surface for the patch may work but it will change the lower surface - i.e. you’ve now ‘broken’ the known surface edge and made it match up to an approximation- that might be fine, but keep it in mind. The truth is, in this example, again, a tangent Patch is not the first choice for a roundy shape, in my opinion - where it makes sense here is if you uncheck the ‘Adjust tangency’ check in Patch and let it hit that outer edge at a hard edge. The shape makes more sense, so to speak, of course depending on what the other inputs are in the middle, if any - I would use History and adjust the other inputs if you use them. Then, the surface may Join, but it does not need to so much because a FilletSrf between the patch and the vertical surface can clean up and look much better- more deliberate and crisp, than trying to make a tangent patch here.


Thanks pascal. I’ll give FilletSrf a try. All good points to know!

I got a much better result with FilletSrf. Thanks so much.

Button Domes2.3dm (585.5 KB)

Yeah- that is the ticket. In general, it pays to separate the main shapes and transition surfaces like fillets rather than try to incorporate all in one surface.