Fillet between circle and straight edge

What is the best way to do a fillet between a circle and a straight edge that converge (cyan curves)? My target fillet radii are shown in red, from which I create surfaces 1 and 2 by sweeping. I trim 1 and 2 where they intersect. Then I create surfaces 3 and 4 by sweeping to the magenta curve (the product of blending a curve between the surface above and below (green)). However, I don’t think 3 and 4 are well made surfaces. 3 can be seen protruding past the surface above it (in the bottom view).

190912 Temp.3dm (5.1 MB)

I don’t have much free time, but you may try this model as a starting point. It has flaws and is far from perfect, though. I mainly used “Sweep 2 rails” and “Match surface”, plus some manual editing of control points. In general, it’s impossible to achieve perfect flow of the reflections where G1 surfaces are used.

Faucet.3dm (6.8 MB)

Or this way.

I was headed in the Stratosfear direction -
190912 Temp_PG.3dm (1.2 MB)

@Rhino_Bulgaria - note: ExtendEdge!


1 Like

The simplest approach is to use Patch. Although I use another program to do it.

Okay. It seems like the key thing is not to bring everything to a pinch like I had in my model.

not to bring everything to a pinch

Correct - generally you’ll get more graceful/natural looking transitions if the surfaces stay more rectangular and ‘open’. But that is also not always compatible with strictly ‘rolling ball’ fillets, which is sometimes a requirement.

1 Like

Is there anyway to produce these complex fillets in a mathematical/geometric way? Surface 0 was produced by sweeping between Rail 1 and Rail 2. Rail 1 and 2 were created by blending curves. The default blended curves were a little clunky, so I had to adjust the control points manually. Is there a way to generate the most optimal rails (control point spacing?), to produce the most optimal surface, to make the most optimal fillet? Clearly, the fillet can look really bad if the rail control points are purposely exaggerated. If there is a bad/unnatural fillet, then there must be a right/optimal fillet. The examples in the previous posts show multiple ways to make a fillet, and they all seem to pursue a perceivably natural shape. Is there a way to identify and work towards this natural shape (given desired fillet radii).

Surface 1 and 2 are having continuity problems. When I go to matchsrf, the average surfaces option is grayed out. What causes this option to be disabled? I want them to be symmetrical.

190913 Temp.3dm (6.0 MB)

Hello - I think making these transitions cleanly with simple surfaces is not going to be automatic - it will take some point fiddling - and for that, keeping the point count low is all the more important.

The layout in my file posted above and the simplicity of the surfaces is kind of what I think, anyway, will make for easier modeling.

Average in MatchSrf is disabled when the target edge is not an untrimmed one - note it can happen that an edge seems like it is not untrimmed to Rhino even if it is untrimmed - like after a Join and Explode. So Untrim if in doubt.


I m intrested. What did you use ?
Is it Xnurbs plugin ?

I opened your model and did the following changes:

  1. I deleted the “Sweep 2 rails” surfaces and the lower 3 flat surfaces, then I replaced the latter with a single flat surface.
  2. I split the edge of the cylinder at the same width as the aforementioned flat surface.
  3. Then I built a “Blend surface” using the “Planar sections” option to make the sides perfectly straight.
  4. I used “Sweep 2 rails” to fill the latest opening. The “Chain edges” option was necessary as the upper end had two edges.
  5. Next, I used “Remove Multiple knots” to get rid of some less important control points.
  6. Then I applied several times “Match surface”.
  7. Lastly, I used manual point editing on some internal control points to smooth out the flow of the surface.

The end result is far from perfect, but is still usable.

Faucet 2.3dm (195.6 KB)

Downloading link to the video (84,7 MB):

1 Like

Fusion360. It has an excellent patch command and it’s free. I occasionally use it for fillets as well.

1 Like

maybe something like this.


Just a quick improvement by manual control point editing with “Move UVN”. My previous model named “Faucet 2.3dm” had too much G2 on it and didn’t flow naturally along the horizontal straight G1 extrusion. If the goal for that part is to be manufactured with highly reflective surface finish in the real life, it will look much, much better if all rounded edges are proper G2 instead of constant radius G1. With G1 the reflections will always break between surfaces.

Faucet 3.3dm (6.7 MB)


Thank you very much

Thanks for the explanation and the model. Could you somehow embed your video? My office computer disallows file sharing sites. I would really like to see your process.

What is the best way to matchsrf without breaking the continuity of all other edges?

I use blendsrf twice at the transition area. Use this solution very often as the reflections of the result flow “naturally”.

1 Like