More interactive curve fillet tool?

Hi, I am not sure if there is a way already to do it, but it would be helpful to have FilletCurve work with a interactive radius preview. Currently we have to know the radius to fillet and while tracing maps or shapes quite often the radius is just a visual thing, the numbers don’t matter. The closest tool to be used is Arc - Tangent to Curves with nice interactive preview, but it still requires several extra clicks to re-trim them to the radius. Maybe Fillet command option “Interactive=Yes/No”? if yes, after picking both curves to fillet we could mouse-move to adjust the fillet radius and on confirm click Rhino would add fillet/trim the curves?

thanks,

–jarek

10 Likes

nice suggestion, I’ll write it up-

in teh meantime, BlendCrv has an interactive element that may do what you are asking-

1 Like

https://mcneel.myjetbrains.com/youtrack/issue/RH-60744

3 Likes

Also - https://mcneel.myjetbrains.com/youtrack/issue/RH-2777

-Pascal

4 Likes

i put this in a toolbar button to kind of do this

! _-Runscript (
	Rhino.Command "_Arc _Tangent Pause"
	If Rhino.LastCommandResult = 0 then
		Rhino.SelectObjects(Rhino.LastCreatedObjects())
		Rhino.Command "_Trim"
	End if
)
2 Likes

Hi Kyle, thanks - I can’t open the YT Item - is it not public?

Not really, apart from not creating perfect arcs, it literally “does not cut it”, meaning we can’t get two segments of polyline and fillet with it and auto-trim the curve as the fillet does.
The closest interactive tool that has a nice preview is Circle TanTanTan or Act Tangent to curves but these don’t trim either, hence the original request.

–jarek

I would find it handy too.

I see on YT that it is assigned to future releases, but I hope It can be add to Rhino 7.

Hi Jakub -

Just to manage expectations. At his point, when it says Future on a YT issue, the absolute earliest that it can be released in is Rhino 8.
-wim

Thanks for the info.
Can users negotiate about that sometimes? :wink:

Now I’m kinda scared to check YT because I can find 3-years sentences in the cases where I hoped for a better verdict.

2 Likes

I played with this a bit today to see if anything useful could be done in the shorter term - I think semi-useful might describe it at the moment, but feel free to play around and see if it works well enough to help or at least show a workflow that makes some sense.

  • inputs must be separate curves, no joining or extending yet
  • you can type a number and get that exact fillet as well.
  • dynamic preview currently only draws an arc for the blend style.


FilletCrvTest.py (11.3 KB)
FilletCurves.rhp (21.5 KB)
To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

-Pascal

9 Likes

Hi Pascal, how to use the command after moving the rhp file into Rhino? What’s the alias added for this command? :slight_smile:

Edit: Found it - it’s “FilletCrv”. :slight_smile: However, that “Pick point” thing does nothing. Could it be replaced with writing the number in the command line instead? Without the need to press “Radius” in the command line first. If I write a number in the command line without pressing “Radius” first, then the end result is a missing fillet curve. :slight_smile:
Also, the Esc key can’t cancel the command :slight_smile:

Hi @Pascal,

This is a nice concept of how the fillet should work with the interactive preview - thanks for working on this!
A few suggestions to make it a bit more useful:

  1. allow ESC to cancel the command when already in the “intercactive” mode
  2. seems like when I pick the curves near the corner to be filleted, not the full range of possible fillets are available. It only works when I pick the curves near their far ends - I can provide a sample if this is not clear
  3. any way to change the interactive text size (could not find that in the python code)
  4. lastly - most of the time we use FilletCrv on two segments of closed polyline/polycurve; I know this is harder to do, but if that worked the script would be full-feature tool :slight_smile:

Yep, I see this, thanks. Used to work…
@Rhino_Bulgaria - fixed, above.
And yes to Esc…
Esc fix is more of a nuisance.

@Jarek - an example would be helpful, thanks - I do know that if you stray too far from the ends it stops working, that may be what you are reporting - I don’t know why yet…

Also, Jarek, the text size is on this line, the last int, in pxels. I can add it as an option as well I suppose:

  args.Display.Draw2dText(str(r), color2, (c.Center + ft.MidPoint)/2, True, 32)

-Pascal

2 Likes

hi Pascal,

Here is a simple exploded rectangle I was testing with:
FilletTest.3dm (142.9 KB)

And here is a sample of what I meant with radius working/not working depending on the picking area:

Hi Jarek - yep that is what I was referring to - I’ll work on it. (See if tracking nearer the second curve is better) . My cheap way of getting the tangent points is to use a Circle.TryFitCircleTT() and this seems to be what is falling down, though it looks like it ought to work - I’ll fuss around some more.

Also, re-re- updated above to include text size option…

-Pascal

1 Like

why not
https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Curve_GetFilletPoints.htm

This asks for seed params, and a radius; I am getting these from the circle.

-Pascal

not really, it only works as expected if I pick near the far ends

nice touch!

but the seed is something close to the intersection ? or closestPoint to each curve(segement) from the mouse ?
but i like the idea…of interactive fillet
(haven t tried the script)
i would love to have the ability to enter a number, even after the preview is active…
let s say the preview shows a 7.892 … i want to type 8

This works.

-Pascal

1 Like