How to fillet the following simple surfaces?

I want to fillet this shape using G2 continuity. I don’t know how to fillet successfully. It keeps failing.
Please guide me step by step. The save file is for Rhino 6.
Untitled.3dm (117.3 KB)
Rhino 5.3dm (118.1 KB)

Could you upload a Rhino 5 or step version?

1 Like

Hi Alex - you don’t say where the fillets go but something like this might be what you’re after?
MostlyG2Thing.3dm (111.9 KB)


1 Like

Thanks for the response. It was great, but how did you create that blended area? (Especially the area marked by “?”)
What commands did you use?
BTW I want the upper area to be fillet by G2 continuity.
Which filleting command would produce G2 continuity?
Please show me the steps. I want to learn.
Thank you very much, Pascal.

I added the Rhino 5 version. Please check out the main thread.

This sort of condition is going to bomb fillets no matter the package. You can either make a simple modification to allow the fillets to flow. Or create manual trims and blends.

1 Like

Hello, 2 things:

“How to fillet the following simple surfaces?”

just because your surfaces are simple that doesn’t mean its easy to fillet.
Esspecialy if the theory is not optimal. You usually don’t do this, blending in partially, because it could have been much easier without this initial blend.

2.) Stop doing g2 blends on flat surfaces. This is so wrong. I show you why:

filletques.3dm (1.1 MB)


FilletEdge and FilletSrf result in fillets with cross-sections which are arcs, and continuity with the adjoining surfaces is inherently G1. There are no commands in Rhino which directly produce “fillets” with G2 or higher continuity

BlendSrf can be used to create “fillets” with G2 or higher continuity but the surfaces edges first need to be trimmed back. One method is to first use FilletEdge or FilletSrf to create circular arc fillets. Then delete the circular arc fillets and replace them using BlendSrf.

Another method is to use OffsetCrvOnSrf on the edges to create temporary trimming curves, and use those curves to trim the surface. Then use BlendSrf to full the gaps.

A third method is to use create a temporary trimming surface using Pipe with the surface edge as the Rail. Then trim the surfaces and use BlendSrf to fill the gaps. Stratosfear shows this method in his post above.

Those general methods. However as Stratosfear noted areas where edges intersect may require special treatment.

1 Like

Thank you for your effort to fillet this shape.
I just imported your model into Alias and I saw there is many edges with G0 continuity. As you see only green edges are G2 and red edges are G0.
Why does this happen and how can we correct that???
I should mention that I couldn’t fillet the following shape in Alias too. It is very hard for me.
Is there any mistake in my initial modeling technique? (using surfaces and trimming to achieve the base model without fillet)
Do surfaces that want to be blended or filleted need to have same degree and span?

sorry but this analysis is absolut none sense. You need numerically or graphically deviation analysis to test for g2. Just because its g2 under some value it doesn’t mean its not “g2”.Some inner values are g1, but that not possible to match g2 everywhere.

1 Like

How can I analyze numerically?

not possible in Rhino (without legacy vsr plugin)

1 Like

Does tolerance setting have any effect on the continuity? If yes, can tighter absolute and relative and degree give better quality?

Did you use Rhino’s native commands for achieving this blends or did you used a plugin like VSR?

true g2 fillets are not possible. You always deal with 2 principal curvatures when working with surfaces. Now , if you have a strongly curved surface, (fillets flowing around a circular shape definitly are have two strong principal curvatures) it is impossible to get not a local discontinuity somewhere. That’s why in automotive you test fillets for g1 connectivity and g2 means to align the third controlpoint row in a way that they are close to g2. Nobody will say something if its not perfect g2. This analysis is more for greater patches.


In one of your shape’s edges I tested for G2 continuity and it showed:
max curvature dev = 1.0
What does it mean?

i cheated, by using non native tools. But you can do the same with rhino, you just need much more time and maybe you will get more controlpoints in the end. You can achieve the same using Alias. But you definitely won’t get it much better with Rhino. You can also cheat your Alias Analysis by adding more cps. Because you can match g2 when you increase u count from 6 to higher. But this is cheating, because your fillet gets unsmooth, but your analysis says it g2. That’s also why I always say g2 isn’t everything. g1 fillets can look much nicer. It really depends. I mean you see how these (close to) g2 blends get these shadows. A true G1 fillet with an additional cp for little acceleration might have been much better here. (Or you crown the base surfaces in matching directions)


you can have parts of your surface being perfectly matched and others are not. Its not that easy:


1 Like

Do surfaces which want to be blended or filleted need to be in the same degree and span?

in automotive, final design surfaces are always bezier (span == 1), however others say multispan is okay. The problem with multispan, if you modify a cp, you have a hard time in controlling the global curvature. It all has pros and cons. But you can say: less spans, less cps is always better.