My kingdom for a good curve FILLET module

Yes I can read it quite well

When the wind stops (meteo says soon == disaster) I’ll post some pseudo code for that matter.

In the mean time you sould sort your curves first in some CW or CCW order and use a tTree (of type double) for the t1/2 values (i.e. crv1.ClosestPoints(crv2, out t1, out t2)) and check the fillet possibility for each current, next pair (for a List of curves, curr = crvList[i], next = crvList[(i+1)%count].

If the fillet is not possible (from the R Method: Curve.CreateFillet(curr, next, R, t1, t2)) add null to the fillets List (at pos i) and 0,1 to the tTree. If is possible check for the reverse case captured above (if the option is true): if i>0 and if the previous fillet item (at i-1) is not null then check the t value strored in tree branch(i) [from the previous loop] against the new t value (having the CW or CCW state in mind). If the check fails add null to the fillets List (and 0,1 to the tTree). If the check is OK then store the t1/2 values (used for trimming the curve at i later on) in the tTree.Branch(i) … meaning that at check time the tTree has just one value (prior storing).

Then having the tTree and the fillets List on hand the rest are easy.

BTW: Found another screenshot related with the general case that requires a proper prox clustering (crvs sampled in random order):

thanks that makes sense. Right now I figured out the t1/t2 by moving the corners pts along the polylines, then closest points to get t. Is that how you would do it? Did you manage to get this working for polycurves as well?

Obviously.


BTW: Is rather waaaay faster to re-write some entry level C# thingy than doing the pseudo code part. Meaning that hope dies last.

:slight_smile:

how to find t’s then?

Simple: if this pathetic wind situation lasts …

… then an entry level C# would be available soon.

2 Likes

At the risk of beating a dead horse, can you just post a .gh file with that module you show so I can play with it. Psuedo C# code is probably not helpful or is the problem that it is not for wide distribution?

was that shoreline filleted with this module?

But the gh file that you are asking for would be a file with a SINGLE C# (is not a module … is an open piece of code meaning that you can double click it and enjoy the freak show).

And as I said the actual gh file (with the C#) is about 300 miles away from where I am right now.

And as I said I’ll rewrite the C# since today the chances for some proper wind are slim (wave windsurfing, what else?).

PS: The new C# maybe can fillet the shoreline as well (maybe not: blame Karma).

I havnt gotten to coding within Grasshopper so forgive my ignorance, but cant you just double click the C# icon and post the code into the window and thus create a module that you put into a file, save that file and upload it.

Er … the images posted are JUST screenshoots taken long time ago … thus double clicking on these … means what exactly?

Wait … if I double click on that shoreline pic => gale wind ASAP?

2 Likes

aaah time… the one factor I didnt consider… there is always one isnt there (unless you are surfacing, then there are 100)

Can you Chamfer that coastline with this module too?

Well … I’ll add a chamfer/fillet choice as well.

Good news: recreation started (but there’s some hints of wind: is waaaay better to go out even with an ugly course slalom board/sail than writing code). See the MKII thing (not ready yet, mind - some far more effective visual aids are required and quite probably a recursive - back/forward - check for reversed results ).

Bad news: Tried your double click idea on Charlize (the ultimate IGoal known to man). Results not as expected mind. Maybe a C# is required: Charlize_Marry_Me_ASAP_V1. gh

1 Like

Sorry I asked )) … I recommend reducing the medication a little. Should help focus on FILLET emergency at hand )

Hi @PeterFotiadis! Hope you finally found the wind that day!
May I ask if there was any follow-up on this thread? I am now dealing with some urban design project that requires filleting potentially different radi values as well as some checks in case filleting is not possible. So far all the filleting components I’ve tried have failed to work, probably due to small segments where fillets can’t be done (or at least using the radius stated). So we are now trying to rebuild the fillets as arcs between each segment pair.
Would you be open to sharing that C# node that you were mentioning for testing?
Many thanks in advance!

Well … 4 (in fact 3) years later means that I can barely remember where that C# is (workstation/partition/directory) nor I can recall the name.

I’ll try to find it … but …

Thank you for the reply! Fingers crossed