Surface Layout and Fillet

Hey there,
I got this corner here…

I cannot think of a good way to do this. Patch gives me an ok surface, but this doesnt really look that good… Patch Layout is bad I think, because I cannot think of a way to do this with 4 sides.
Appreciate any help :slight_smile:

230605_Forum.3dm (5.4 MB)

Best regards,

Attached is one way, the bigger fillet in the center between the pipe and angled face is a VariableFilletSrf with ‘R5’ distance from edge.

230605_Forum_G.3dm (388.8 KB)

1 Like

I think you can get a better patch if you curve the bottom edge rather than coming to a corner:

230605_Forum_J.3dm (7.0 MB)



Hi Paul - using regular rolling ball fillets, I’d use three FilletSrfs like so:


1 Like

all the sdolutions look really good.
However, @pascal and @Gijs I cannot reproduce this.
I dont know how to get to the part where I can use the FilletSrfs…

I just get this… I don´t know how to trim it right.
230606_Forum_02.3dm (5.1 MB)

Best regards,

You need to untrim some surfaces so that the fillets will reach.
In this file I did one side. The two 1mm fillets connect the cyan surfaces to the green surfaces
230605_Forumx.3dm (5.0 MB)

1 Like

Hi Jim,
Thank you. I have now reconstructed it and understand the way it is done :slight_smile: Thank you for the explanation!

@jeremy5 @Gijs @pascal Thank you for your time and effort as well! Appreciate the help :slight_smile:

Best regards,

1 Like

Another beautiful example of true fillets. :beers: Wish we could automate this.

So, I guess the ball has the freedom to change diameter as it rolls.

These are all constant radius, matching the upper red fillet which was already in place. The fillet becomes narrower as the input surfaces approach tangency.


1 Like

Understandable. I guess it’s hard to know with the wireframe looking image. I’d have to download the file and dig deeper.

Are you using xnurbs here or regular rhino patch?

Just regular Rhino.

nice… well done.

1 Like

Hi Jim,
Did you untrim or extend the green surface?
I’m having a hard time doing the other side, can you guide me?

1 Like

looks like it’s symmetrize-able

basically he probably untrimmed the left side to get the fillet to work.

I recommend moving this seam though, so it doesn’t propagate throughout adjacent geometry arbitrarily:

230605_Forumx_emod.3dm (9.2 MB)

I untrimmed the green surface, but I was only helping someone with their geometry. I would have done things differently if I was building this from scratch.

A fundamental proposition of good fillets is that a fillet connects two and only two surfaces. The vertical cylinder is two surfaces not one and so there needs to be two fillets connecting to it. That means splitting the green fillet where the one half of the vertical cylinder ends and making another fillet that connects to the other half. The picture below shows what I mean:
you can make the other green fillet using filletsrf with extend option or you could use mirror to create the other fillet

Personally, I would recommend starting from scratch. First create the base surfaces. Then create the 10mm fillets. Then trim the base surfaces with the 10 mm fillets and then you are set up to make the vertical 1mm fillets (see file below).
base_surfaces.3dm (4.9 MB)

As a side note:
Pointy fillets often don’t work. Usually in Rhino fillets that should come to a point don’t. In this case they do work because the base surface that is at the end of the pointy fillet is a plane. If its not a plane the pointy fillet will usually be FUBAR. And that makes trimming and joining fail.

Hello Jim,
When I did what you said, I got the result, but the main problem for me was that chain fillet and fillet srf commands create different surfaces. I realized that the chain fillet command creates a shorter surface that does not cut the surface. Also thank you @lander , it was helpful.
base_surfaces.3dm (5.6 MB)

1 Like

Yes. sorry I wasn’t very clear before. You did it the same way as I did. I made the green 10mm fillet with FilletSrf using the Extend option.

In the final result there are 19 surfaces of which 14 are fillets. You could make all 14 fillets with the FilletSrf command. That’s a pretty normal ratio of fillets to base surfaces. The purpose of the script is to do the most time consuming part of using FilletSrf, which is making strings of fillets across tangent base surfaces. For anyone that makes models with hundreds or even 1000’s of surfaces of which 2/3s are fillets that can save a lot of time.