Filleting only selected sharp corners of a curve

according to the options we have with “Fillet Edge”, i would like to have the same possibilities wih the fillet(curve) component.

for a present scenario i need to only fillet the convex corners of the shown curve, but i could also adress the concerned corners via member component.
i could not find a component to allow this differentiation while filleting. any suggestions for a simple but stable workaround?


i attached a simple definition with just the curve and the points.
fillet_some_corners.gh (3.3 KB)

Hi @brt1,

You can isolate the desired, external corners by drawing the convex hull of all the corner points. Only the external corner points lie on the hull curve. I then use Anemone to recursively fillet each desired curve corner.

As long as there’s differentiation between convex/external and concave/internal points, this should do the trick!

fillet_some_corners_2.gh (10.1 KB)

3 Likes

fillet_some_corners_convex.gh (14.8 KB)

In case if you don’t want to use anemone you can try this tool. I’m not sure how stable it is.

Best,

Mahan

1 Like

recursively” is not correct here. Anemone is using simple iteration (looping) to repeatedly fillet a curve one vertex at a time. This is necessary because Fillet acts on only one value of ‘t’ at a time, producing a separate copy of the filleted curve for each value. I understand why but it’s still unfortunate, unexpected behavior.

thanks for your suggestions!
anemone looks good, but in this specific case it´s desirable to work with standard-gh-components.
i quickly tested mahan´s solution and it seems to work fine. there will be situations where some fillets fail (when exceeding a certain radius or when the original pentagons get too close, …), but for for my needs as an “inhouse solution” its stable enough.
so thanks again

I just realized there are some expectional cases that can not be done by the hull convex method. I explain the error in D1. I develpoed a new method which fix this problem and the method is explained in D2. You can find the code in the file attached here.

Best,
Mahan

fillet_some_corners_convex _2.gh (13.5 KB)

2 Likes

thanks again!
i will take a closer look and test some cases. from what i see by now, both solutions work for my needs here.

Old thread but I had the same problem and just want to share my solution.
I split all the curves, fillet, and join back together. Works nicely for my usecase.



FilletCorners.gh (107.1 KB)

I see you got a bit more with than you asked for :sweat_smile:. Those are part of my template. You need Sasquartch though to flip the curve

No, YOU need Sasquatch to flip the curve.

P.S. Also, you did not internalize your Crv or post the Rhino file it refers to. :-1:

1 Like

This can also do the job, but could lead to more not very nice curves (too much control points …)

1 Like

I might as well mention this Anemone loop solution:

It works at selected sharp corners and handles different fillet radii at each point.

here is another C# approach, because the examples didnt work for me

filletpervertex.gh (6.2 KB)

1 Like

old thread - brand new solution … thanks a lot!

tried to fillet all corners using 7 sliders and noticed the fillet won´t work at the start/endpoint.

no need for it right now, just wanted to feedback.

cheers roberto

filletpervertex_2.gh (15.7 KB)

thanks for the feedback! i think it works now. at least with rhino 7 and grasshopper 1.0.0007

filletpervertex_3.gh (17.5 KB)

added a chamfer option and an extra output with the different types of segments in 2 branches.

FilletChamferPerVertex.gh (24.7 KB)

Both, tools work flawlessly in Rhino8, very useful.

Thanks a lot!