Biarc Problem: How to Control Biarc Radius?

Good day,

I’ve researched that the closest thing to “Filleting” a pair of non-planar and non-intersecting curves is through the Biarc Component. Unfortunately it lacks the capacity to control the radius of the arc created , moreover the only way I can manipulate the radius is by shortening the lengths of the the pair.

My question is - How can one accurately control the Radius of the Biarc Component?

In my example I made a biarc from a pair of curves and juxtaposed it to a planar curve that produces my desired radius.

Fillet Experiment.gh (16.9 KB)
Fillet Experiment.3dm (178.1 KB)

Any help guys? I managed to do it a little bit but it requires me to project and fillet my non planar curves; and then I had to shatter and extract the arc on the flattened curve; then I had to get the end points of said arc and project it to my non planar curves so I can trim it and get the curve tangent from these points. It gets the job done but as you can see, my method is long and dumb. Is there a simpler, mathematical solution to my problem? I would like to request a Gh component 3d filleting curves :slight_smile:

bi-arc produces two arcs with same in-between tangent

maybe what you are looking for is the nurbs curve which blends your original non-planar curves, and also “best resembles a given fillet between your curves when they are projected on XY” ?

Precisely. I want to have a radius that approximates the radius of a flat filleted curve. When viewed in top view. Can you help?

I have no idea how to tackle that the good way :slight_smile: but I have a bad idea
I would consider this new “fillet” curve to be created by point interpolation:
the X and Y coordinates of these points are controlled from top view (projection of the original curves on XY → fillet → divide fillet into frames → just take their XY coordinate, save the frames for later)
and for their Z coordinate?
maybe we could steal the Z coordinate by intersecting the frames with the “average blend” between those curves? (this is basically wrong from several points of view)
and here is a bad Frankenstein-like creature :slight_smile:

[amount of control points depends on the fillet radius amplitude]


Frankenstein_of_bad_Stuff.gh (18.4 KB)

[edit] or we could just use curve from 2 views man_facepalming: :person_facepalming: :man_facepalming: :person_facepalming:
fennec plugin has a pretty simple and useful component for that


Frankenstein_of_bad_Stuff_Fennec.gh (23.2 KB)