Grasshopper: Filleting Multiple Corners of a Rectangle

Hi All,

I am just wondering how to fillet more than 1 corner of a rectangle using this command (ideally 2). When I use this script by adding an additional index it runs twice and ultimately ends up with 2 curves instead of 1 merged curve with the filleted corners.

Filleted Corner Script.3dm (23.9 KB)

Filleted Corner (6.7 KB)

Try the Fillet Distance component:

Filleted Corner (6.2 KB)


Hi @kev.r ,

Thanks for your reply.

Ideally, I am only want to fillet 2 out of the 4 corners. Not all 4.


Harrison. (6.8 KB)

1 Like

Oops - didn’t read your original post closely enough. How about this:

Filleted Corner (7.9 KB)

I’m sure there are other ways.


Hi @kev.r ,

I hope you are well.

I was wondering why when I input this definition to multiple inputs, it does not generate a closed curve.

Please see the updated script attached. When I run it through this script it creates 225 (open I believe) instances instead of the desired 15.



Filleted Corner Script_Rev2.3dm (29.8 KB)

Filleted Corner (10.3 KB)

You’ll need to graft the Curve input to the Shatter component:

Filleted Corner (14.9 KB)


1 Like

Would be nice if you internalized your curve instead of relying on an R7 .3dm file that can’t be opened in R6? Or just generate a curve with GH: (rectangles are 4200 X 1200; big enough?)

Hi @kev.r ,

Sorry to query again!

I was wondering why when the new geometry (filleted version) operates like this? First image is the rectangular and the second is the filleted geometry.

Please see the updated files for the definition.



Filleted Corner Script_3

Filleted Corner Script_Rev3.3dm (138.2 KB)

Filleted Corner (76.5 KB)

I’m only find the Fillet Distance component one place in your definition and resulting geometry is what I’ve highlighted in yellow here:

I don’t see the geometry you posted in the second picture above.


Hi @kev.r

Thanks for getting back to me.

The desired outcome is for the filleted version of the rectangle (which has been created using your previous definition) to operate as the original rectangle is with the same rotation factor etc. When the filleted outcome is converted to Boundary Surfaces (like the original rectangle is) and inputted into the Rotate 3d it operates undesirably like the previously mentioned image. Please see attached which may help in explaining.



Ok, I see what you’re talking about now:

You’ll need to flatten the output of the Boundary Surfaces component:

Also, as @Joseph_Oster mentioned in his post above:

Just right click on your geometry objects and then click Internalise data:

I have internalised all your imput geometry in this file:

Filleted Corner (82.3 KB)


Thank you for that Kevin. Gadzooks, that’s a complex GH model that might benefit from data trees?

Hi @kev.r

Thanks for your help.

Have a good day.


I only had a few minutes to look at this yesterday - looking at it again now and I realized that I realized I bypassed your first Rotate 3D component.

Changed the code I uploaded yesterday from this:

To this:

Filleted Corner (81.8 KB)

Trying to understand your intent from looking at your code. Are you trying to rotate your louvers by 45 degrees plus (or minus) 0 to 20 degrees based on the distance from an attractor curve?

Your first rotate is 45 radians - did you intend for this to be degrees? Couldn’t you just add the two rotation values and use one Rotate 3D component?


Exactly what I thought when I first saw it. Had some spare time this afternoon, so I took a stab at it.

Went from this:

To this:

Filleted Corner (52.0 KB)

Most of the final definition is taken up by the inputs - I could have eliminated the Graph Mapper components, but I wanted to keep the same inputs as the original.

The panels on the ends of each section line up almost exactly with the original. The in-between panels deviate slightly from the original. Not sure exactly why, probably because I had to change some parts the basic definition around slightly to get it working with Data Trees. OP can tweak it some more if he wants, it’s good enough for me.


1 Like

Bravo! Great work, though it can go further…

  1. The ‘Attractor Curves’ Merge makes no sense, the result is the same with only two curves being merged instead of “merging” three copies of one curve and four copies of the other.

  2. The Graph Mapper components make no sense because they each generate only one value, despite the fact they have (internally) three different max values (5, 10 and 15). Each can be replaced by a single ‘0 to 1’ slider and I have done so, carefully copying the values.

Results are identical, code is now reduced to this:

Filleted (31.6 KB)

Some of the complexity that remains appears to be arbitrary, exploring ideas rather than significant practical differences? I deleted the code at the top left with all of its previews hidden.

This goes pretty far from “Filleting Multiple Corners of a Rectangle” but it had to be done. :sunglasses:

@kev.r & @Joseph_Oster

Awesome stuff! Thanks for your help