Patched surface not within tolerance to make water tight, what to do?


This is a problem I have been running into a lot: When I need to cover a region bounded by a single smooth curve, I create a trimmed surface via the patch command. But the patch command doesn’t yield sufficient accuracy at the borders to allow the patch to create a water tight seal with other surfaces connecting at the boundary. There’s probably a much more succinct way to say this, but a little tired here… I hope it’s clear enough…

I know the one solution is to extend and/or rebuild the surfaces to be joined, and then split them with one another. But when the surface’s are close to tangent, or complicated enough that extending/rebuilding makes a real mess, it’s not an option.

Why wouldn’t the patch command, in the first place, allow for tolerance control to enable water tight connections?
Any thoughts on an alternative approach?

I have the same problem when the boundary to a region is triangular… I wish there were a 3 sided surface…



Yes, it would be nice to be able to specify an edge tolerance among other factors and have Patch automatically adjust its settings to achieve that tolerance (wouldn’t be possible in all cases, though). In the meantime, the only thing to do is keep playing with the number of spans and the stiffness until it actually gets there…

Again, even a semi-automatic thing - like the Patch dialog telling you that your current settings will or will not result in an edge curve within file tolerance would be nice…

EdgeSrf or NetworkSrf might work here…



Attached is the model I am having trouble with. It’s a shoe last. The bottom surface is the problem.

I attached two versions. The first uses patch to try to cover the bottom. The second uses a workaround I have previously made work but isn’t working this time (splitting the boundary so it becomes like 4 edges and using networkSrf) and it does seem like a hack…

Try as I might to adjust the patch and networksrf settings, I can’t get a water tight join.

Any suggestions on how to create this bottom surface and make it join the upper with a water tight?

The three sided surface dream: Edgecurves to create a 3 sided surface is just a trick where all control points for one edge just sit on a single point (I think thats how it works…) and that results in very uneven control point spacing. What I am dreaming of is some new mathematical formulation of a 3 sided surface, but I bet someone reading this with good NURBS knowledge is probably laughing at me :frowning:

SamShoeLastWithNetworkSrf.3dm (4.4 MB) ShoeLast.3dm (758.3 KB)

(Pascal Golay) #4

Hi Sam - this does look like a case that should work better than it does with Patch- I’ll ask the developer to have a look.



(Pascal Golay) #5

Yeah… this is on the heap, I’m hoping for V6…



The reason I’m wanting it to be water tight is for 3d printing. Perhaps there is another way to force this, maybe with tolerances or something? I’ve previously meshed it thinking I could then use MeshFillHoles, but that creates a mess…



You may be able to mesh it and then fix the mesh either in Rhino or some mesh repair software… I might try something like MatchMehEdges…


(Kyle Houchens) #8

I frequently use a pipe to trim a hole between the patch and attaching surface, then use blendsrf to connect them. Works like a charm-



In this case, I overlooked one other obvious direction… Your vertical surface (the shoe “side”) can actually be shrunk into an untrimmed surface. You can then use MatchSrf to match the shoe side surface to the sole, using position, match closest points, and the desired tolerance. I was then able to join your networksrf model into a “watertight” solid. Unfortunately the patch model is too far out in a couple of spots to properly match.

What I tried with the patch model was to untrim the patch surface and extend the shoe side srf so that they completely intersected each other. Often you can get good intersection with which you can then trim… However, in your case as the side surface is near tangent to the sole in one area, the extension of the side surface did not yield a complete intersection at that spot and that strategy failed too…



Hey all, I redesigned the last upper surface (side), and the cleaner surface I could then extend to intersect with the untrimmed bottom surface.

I like the pipe idea, Kyle, I will try that next time.
Thanks for the help Helvetosaur, and Pascal. That’s the first time I’ve heard V6 mentioned. Some improvements to patch would be great. Looking forward to it!