Rhino trouble with radius

Good to be wrong!
This means, that it is solvable with our surface modeller.
With a better FilletEdge.

The difference is that making fillets when done correctly should be faster, easier and more reliable when done with a surface modeler like Rhino. Users go to a great deal of time and effort to create a solid so that they can hang a fillet on the edges. With filletsrf you can just skip all that wasted effort and go right to connecting surfaces with fillets. If the process were automated as it should be you would have your filleted model faster without having to first create a bunch of edges that you will only destroy in the next step of the process.

I’m curious what does Fusion do when the fillets have completely consumed the base surfaces and they no linger exist in the model?

Here is and example: Remove fillets.3dm (171.4 KB)

It’s not magic, if the surfaces are not there it can’t go back to an untrimmed model. All I was talking about is I usually get models covered in 0.2mm fillets, text and junk that’s not needed while machining cores, cavities and electrodes and it used to take hours to remove them with Rhino.


FilletSrf makes world class fillets while filletedge often makes fillets that have out of tolerance edges and poor tangent continuity. That means even when Filletedge succeeds the user has geometry that may cause future problems.

Yeah, I was just curious if it would attempt to reconstruct the missing geometry

my 2 cents

  • The problem with automated filleting is that, no matter which cad, its always worse than doing it manually. Depending on your field of work, this can be a problem.
  • I believe solving this fully automated is much harder to code as most people think it is, since there are too many parameters, parameters you automatically decide if you are an experienced modeller, but when coding, you always need to set them
  • I know 20 + types of cornerblends
  • Solid modeller know what’s inside, and what’s outside
  • Its not an reliable automated fillet edge, its general surface tools, Rhino lacks of. In other direct modelling software, manual filleting is much faster.

Didn’t have time to try your model earlier. It does try to heal the model to a solid but without the other surfaces you end up with just a round hole through the fillet that runs around the box. In the screencast linked below I also tried with a 0.5mm fillet and it does recreate the 2 small surfaces that the fillet consumed. This was after an export import so there’s no history.


I believe most people think its much harder to code than it actually is.

All the developers have to do to make the next filletsrf after the first filletsrf is made is to find the corners of the first fillet and treat that as the user input for the next fillet.

As a user, I can find the corners of the fillet that was just made and click on the next surfaces that I find there. The question I am asking is why do I have to tell Rhino that is where I am going to click next. It should be obvious. Its ridiculous that I have to keep pointing to the corners of the last fillet over and over and over again because I am supposed to know that is where the next fillet will go but it is too much to expect the developers to grasp that simple concept.

I would like you to explain to me why you think it would be difficult to code for the software to just assume that will be where I click next. That is all it would have to do to make all the fillets in the example that was posted.

Then it should be easily scriptable :wink:

Yes it should be pretty easy to script. All you need is a function that identifies the surfaces that are within tolerance of a point in 3D space.
Such a function no doubt exists but I don’t think it is made available to users.

In general whenever there is going to be a next fillet in the loop of fillets you would have 2 surfaces identified at one corner of the last fillet and one surface at the other corner. On the corner with 2 surfaces one of then will have been used as input for the last fillet and one will not . The one that has not been used (new surface) and the surface at the other corner are the inputs for the next fillet in the loop.

Then the process repeats for the next fillet using the corners at the other end of the fillet that was just created

The process keeps repeating until it gets back to the 2 original input surfaces or runs out of new surfaces identified. When it gets back to the 2 original input surfaces, the fillet loop is now complete.

i disagree.
Please don’t get me wrong, but have you ever developed something with Nurbs? Have you even coded something? And if so, have you ever coded something which was not part of an existing library? I mean its not really coding if you just make library calls by script.
As I said, you need to determine a lot of things, you automatically do when doing manually. And it has to work for a lot of cases.

Rhinos fillet functionality is already very stable for such an generalised functionality in my opinion.

Here are only some problems I see:

Fillets can be different, they can have constant radius or constant chord distance. They can follow a curve. When the underlying surface is bad or twists, it needs to prevent self intersections and other troubles. It has to be accurate. It needs to be divided into multiple patches. Each of these patches have to have continuity in between. There are many different situations for corner blends, some situations can have different patch layouts. Not every layout looks good or works well, you cannot generalise it. Straighter patches have to be real trimmed (not rhino trimmed) in a way that you always maintain edge tangency alignment and untrimmed patches. Fillets can have g2 connection, and if so it would be nice to determine an acceleration factor. If g2 fillets, you need to hold a minimum radius, also in corner blends. Rhino and Fusion fillets are weighted but that’s not good, non-rational patches are better to work with further on. If you have non-rational patches, you have more cps, which than leads to other difficulties, but simplifies corner blends. You always need to know what’s outside and what’s inside. Your algorithm needs to interpret curvature flow to analyse which cornerblend works best. Most automated fillets I have seen yet are using less optimal ,but easier to code types of cornerblends (so called “Multiblends”). If you analyse deviation, you will find out that multiblends are not the best; but in Rhino there is not even a method to measure local discontinuities. So Rhino also needs a better deviation analysis.

I could point out much more difficulties, but the worst issue is the user.
You just need to make sure your surface data is clean. Then for most cases _filletedge works quite well. However most users don’t model clean. They don’t have to, but then they shouldn’t complain if something fails. Rhino filleting already works very well! Fusion,Catia and others even more. If we talk about non-visible parts or parts with low-reflective materials, you can even go for g0 fillets. Nobody will care. But don’t expect that an algorithm will do your work in the near future.
I personally thing computers are much dumber, as our modern society always want to tell us. Computer did not simplify anything for us, they just made things more complex. Which can be good and bad in the same instance.

All the problems you enumerate are off topic.
Your objections make it obvious that you have never used the FilletSrf command to fillet a model. If you were to take time filleting the model that was posted at the top of the thread using FilletSrf you might be able to comprehend what is being discussed.

If you want to try your hand at filleting the model using filletSrf the procedure would be to make one fillet first and then
A) go to the end of the fillet and
B) click on the 2 surfaces you find at the corners (one surface will be new surface and one will be a surface used for the last fillet)
C) Repeat the process starting back at A until you make it back to the first fillet.

After you have tried doing this yourself then you can explain why you think this would be hard to code.

That statement makes it clear you don’t know what is being discussed. FilletSrf makes rolling ball fillets of constant radius. FilletSrf makes world class surfaces but users avoid it mostly because it requires an enormous amount of tedious and repetitive actions by the user. It would be dead simple to automate those repetitive tasks.

That statement is false. Filletedge fails in most cases PERIOD. FilletEdge tries to make one fillet for each edge segment. In most cases there is no correlation between the number of edges and the number of fillets and thus the algorithm fails in most cases.

why are they off topic? Fillet edge produces cornerblends, and it fails at corner blends. Rolling ball fillets also fail at edges with strong curvature, like shown above . Why, because the rolling ball has to fail there. direction change makes it hard to fit in an exact rolling ball

false, fillet edge command can do chordal fillets if selected inside the command menu

well lets say it differently, in those areas where fillets are possible it creates them, but it doesn’t do all the corner filleting or manual blending at difficult areas for you. It simply doesn’t know what to do.
In most areas it however creates the fillets.
I also never said its awesome or the best, I just say there will never be a perfect filleting algorithm. And I wouldn’t demand something like this, and I’m still believe its far from being easy. If you know any cad software who has this, please tell me. That would save me so much time.

Your comments are based on total ignorance .
You have obviously never used the filletSrf command to create fillets. You have no idea what that command does or what the proposed improvements to that command are and yet you insist those improvements cannot be done.

Filletedge more often than not creates the wrong fillets. That’s a fail.
An example of such a failure is the model posted at the top of this thread Apple Watch.3dm (823.8 KB)

If you follow the instructions in my previous post and make the fillets using FilletSrf you will see what the correct fillets look like.

touché, If you say so then it must true. I won’t waste my Saturday for this crap. Could also be that you don’t understand what I mean, but I guess this due the fact that you never created a fillet functionality from scratch. So my arguments may sound like Chinese to you. Or I haven’t described its meaning very well.
I’m however pretty sure Apple didn’t use _filletedge for their watch.
There are always two kind of people: People who say you need this or that, and those who try it on their own to solve their problems. Last people often fail, but its helps to understand what possible and what’s not.

If you walk out the door to breath some air and enjoy the day, you may see some newer VW’s outside. Have a look at the fillets. There is a chance that they are made by me. And if you want to know, why I’m coded such functionality by myself, it may help you to know that this is a common problem and at work I’m trying to automate the filleting process to a certain degree in areas where patterns occur. Because we use Rhino+GH for automation, and sadly there no acceptable global fillet functionality to help us out.

Yet another comment that is not on topic.

I proposed a simple improvement to the FilletSrf command. I would like to hear you say one thing that supports your claim that what I proposed would not be easy to implement.

You have rambled on and on and on about the FilletEdge and other topics that are even farther afield. FilletEdge is a different Rhino command. If what I proposed for improving Filletsrf were implemented it would not affect FilletEdge in any way, so I’m baffled why you keep talking about FilletEdge.

Are you going to say anything at all about why you think what I proposed would be difficult to implement?

Well, SolidWorks does this no problem and also Alias (NURBS surface modeller like Rhino) handles it, when a small sliver of surface has to be “eaten” by the fillet’s size; see attached image. So, as Jim says, Rhino could make this effortless, too.

1 Like

To be clear, Rhino can make the same fillets SWX makes if you use the filletSrf command. FilletSrf has been able to make these fillets for close to 20 years. And the simple fact is that the rolling ball fillets Rhino makes with FilletSrf are usually better quality than most other CAD programs make.

The problem is that FilletSrf requires a lot of completely unnecessary work by the user. It would be very simple to eliminate most of that unnecessary user input so that making fillets like this with filletSrf would be quick and easy instead of a long tedious process.

Boys, chill…you can both be right! Your discussion is both germane and interesting, IMO.

@TomTom has VW evaluated the autofillet function in Creo? No clue if it is right for what you are up to, but I can tell you that it has worked for us, once one learns how to manage it.

I can’t show you, but I can tell you that autofillet has been a godsend in a nightmare scenario, with multiple iterations, each with a gazillion perforations, all needing fillets.

I heard a story once where company X did something similar in past, and they put an engineer (poor bastard) on it for 3 months to bang the thing out manually.

Conversely, we put Creo Autofillet on it, went home, had a brew, slept in, and in 12-24 hours, perfection!

@jim Your filletSrf crusading over the past months has been eye opening and compelling. Played around a little. Looking forward to the right opportunity to deploy what I learned from your filletSrf beating.

Keep up the good work guys. Now kiss and make up…:wink:

PS @TomTom …don’t F-up the fillets on the I.D Crozz. Concept looking good!

I know alias and solidwork, I even have Alias on my workstation. Same as Catia and Icem Surf. I think this discussion yesterday went a bit into the wrong direction. Why? Because, I’m talking here from a perspective of a programmer, and you are talking more from a perspective of a modeller. My intention was only to say that, on a coding level, this is such a complex topic, no matter if its theoretically possible or not. This is something, somebody who models only might not see. I also believe everyone would like to have a better and more reliable global fillet functionality and I’m pretty sure McNeel has put very great effort in it. However its very likely they simply failed for a couple of reasons. It always sounds that devs are simply to lazy or they have no motivation to that, but it may also simply because of the difficulty involved.
I mean Alias has a better (…suited) core library. With VSR Tools they have purchased even some additional good functionality, even improving Alias. And even Fusion360 uses some of it, i guess. Autodesk has a greater library.
And if Alias would be as scriptable as Rhino, we would have taken them for design surface automation.
I also have said that other programs do better, but they also have a different library to work on. Catia, Creo, SolidWorks have global fillet functionality, very good for constructive parts, not good for design surfaces. We actually do the filleting in Icem Surf, they also have a global filleting functionality, and in addition some corner fillet functions which are very great. But still they fail. The truth is filleting still is a hot topic and no software has tools good enough to fully replace manual approaches in terms of quality.
I also said, for some less quality is acceptable, for some its not. You can also debate on this one.
That’s all about the indent of my initial comment, and has nothing to do with problem shown above. The problem above is simple compared to other problems occuring in real life situations. You all know this.
Perforations are rather simple examples. I have coded class- A fillets in Grasshopper for them with my own Bezier library, but that’s actually a very special case. And this is what my solution to repetitive kind of problem is. I’m not trying to build an all-in-one fillet functionality, I build special fillet layouts when patterns occur. This is much more effective and comes much closer to result we need.

the winter is coming. … and I’m not a person who likes the cold. So you know my opinion.:wink: Yet I’m optimist and trying hard to get the best fillets for you :grin:. I’m however not doing them for this car, although I have made other things for it.

Likely solved in the ‘20s, and hopefully commercialized by the ‘30s.

Until then, take your arse, and I.D., to Santa Barbara CA, or Loja Ecuador…:wink: