WISH: Fix for Fillet Edge issue for elementary geometries


#1

I realize fillet is not the strong point in Rhino but, if there is a cylinder of diameter X isn’t it expected to get fillet edge to succeed with fillet X/2?
Or edges of rectangular solid of length Y apart to be able to fillet with Y/2?
Was it like this in V5? couldn’t recall…


#2

When the fillet makes the surface “disappear”, because of its size, you have a problem in any NURBS modelling software.


#3

I guess this one goes to the wish list…
Even if problematic in terms of NURBS modelling, software should recognize a simple case so that output can be achieved though it may not be proper execution of the command in terms of NURBS calculations.
Simple geometry fillet should be treated differently from more complex ones. Whether it does revolve then trim then join for cylinder, or extend and trim and join for rectangular boxes as the background calculation, rhino should be a bit more competent…just my opinion…


#4

It is not as trivial as it seems, the user set tolerances come into play, a 1/1000 sliver of remaining surface may be ok for some users and a show-stopper for others. A NURBS modeller cannot just simply remove a surface from a (non-existing) feature tree like a solid modelling software.

You see this problem also in the never ending filleting discussions, when a “too large” fillet would affect a surface that is not directly adjacent to the common boundary where the fillet is to be built; some NURBS softwares can handle that, but it is not trivial.


#5

This might be a problem as you mention, but if using an alternate surface building solution, example for a cylinder of diameter 10mm, 45deg arc of 5mm revolved 360 deg around the center of the cylinder, then trimming the cylinder and joining would make tolerance issue go away.

It may not be a “fillet function” but result is as expected, and much better than not getting anything.


#6

A fillet/chamfer function that only works on cylinders… I doubt the developers would bother.


#7

Not just cylinders but some basic geometries, squares, rectangles, pyramids maybe…

Seems rhino does it to some to extent but leave some unwanted surfaces
(may not be the same result all the time, but just some I tried now)
and as just deleting seems to make expected result…

Couple of simple geometry fillet failing:

Leaves a smalle surface behind:


Leaves a large surface and two small surfaces behind, but once exploding then deleting them and joining together, expected closed surface is there:


#8

In the cases you show, rather than fiddling and seeing things fail, it looks much easier to create those fillet surfaces with Rhino’s surface tools directly. After all, when dealing with simple forms as you show, it’s simply a matter of creating/intersecting quarter cylinders, hemispheres and the like. No ambiguous surfaces to deal with.


#9

All right, there are other ways, other solutions, but after more than 30 years of development these “banalities” should be solved. We do not talk about doing fillet to Catia, but at least solve these simple cases without having to perform more useless and boring operations.
I understand Toshiaki’s point of view …


(Wim Dekeyser) #10

Or, like in the thread you referred to, use FilletSrf.


#11

My points exactly.
It’s a simple form and should be able to succeed.

I’m not into looking into things that doesn’t work well with Rhino.
Just came across while doing something, and was a bit disappointed that something so simple fails…


(Pascal Golay) #12

Hi Toshiaki - my guess is, a hard part would be recognizing the situation programatically, even assuming code for the special cases exists - it’s plain enough to you and me what to do, but computers are dumb - they need to be told everything - what to tell it to recognize in these cases in the context of a filleting operation is likely to be quite a trick.

-Pascal.


#13

Computers are dumb, yes, perhaps more obedient, so it’s up to programs to appear smart.
For complex curved edges, it’s going to be difficult to cover and not being intelligent enough seems fine.
But for the samples given, personally it’s an hygene level issue. But guess there’s different level of acceptance for those…
I don’t program except for webs so I don’t know how many man hours it takes, but if command explode-join-selsrf-delete can fix then program can maybe do? with perhaps precondition of trim succeeding.
Anyhow, it’s just a wish, up to mcneel to drop or do. I’ll just keep raising things that I felt should be fixed while making my models, not too much digging into what fails.
As a background mindset, I just felt this is an hygene level thing that novice/trial users would bump into and as a result underrate rhino as a whole.


#14

The other NURBS surface modelling softwares fail at your examples, too, so there is nothing to worry about ; )


#15

I see…
Well I maybe a chance to be small step ahead.
If mcneel has enough new users to keep up that’s fine I guess… Just don’t sell to autodesk.


#16

ADSK is a good business. Since the dotcom bubble, the stock went from $7 to now $136. I like it.


#17

I’d like it too if they make VSR plugin for rhino V6.


#18

What to tell the computer to do in this case is quite simple and trivial.

The scenario that is being discussed is extremely trivial and easy to handle. And how easy it is to handle has nothing to do with NURBS or solid modeling. That canard has been thrown into this discussion to muddy the waters.

A rolling ball fillet is a surface that is equidistant from a center curve and that center curve is equidistant from the 2 surfaces that the fillet bridges. That definition works the same whether you are talking about Rhino or Solidworks.

The issue for making a full radius fillet at the end of a cylinder is that involves handling a degenerate condition where the center curve of the fillet has collapsed into a point. When Rhino encounters this degenerate condition it recognizes it and bails out and returns a null result. When Solidworks encounters this same degenerate condition it recognizes that the surface that is equidistant to a center curve that has degenerated down to a point is a spherical surface and so it handles the degenerate condition by making the appropriate spherical surface.

I

A rolling-ball fillet is just a surface