I’ll shake the topic a bit more about marking out a point with a minimum curvature radius on a spline curve – or more precisely, different approaches to that topic. The solution for that’s been already described. Using trial and error methods in parallel, I tried to compose a rule, which would automatize, in some way, the marking out of that point for me. Today, I have finally finished it, but my enthusiasm has already faded away having the method done… 🙂
Its syntax looks like this:
It works as the following:
– loop generates points for me, depending on how set is the Step parameter (and it keeps doing so, up to 0,001 mm),
– populates strings in the list, together with assigning multipliers to the last sections of our sentence,
– next, it sorts that list, in order to extract the element with the least curvature radius,
– using EKL language, it carries out operations on a string to extract the previously defined multiplier, which, if multiplied by our Step, will give us the distance to the point on the curve where the minimum curvature radius is (as precise, as we set it to be). With a huge amount of luck, we might get a perfect point with a large Step, yet that, I cannot guarantee…
Here is the result of the use of that method:
As we can see, the more we decrease the step, the closer we are to the perfect point. Unfortunately, as with 1 mm step, efficiency of that method drops heavily – now, imagine what would it be like with 0,001 mm… :-)) With 0,01, I waited for the result about 15 minutes in front a good standard workstation.
I think it’s the sorting in this rule, that slows down the process. On the curve described, if I’d input a step equal to the CATIA error – I would get about 50000 points (“big” set to sort…).
In order to improve that, at the beginning we would have to find an area using a coarse Step parameter, and after, repeat that procedure with 0.001 mm accuracy in the set area – maybe then the solution would be efficient enough, because raking the whole curve with a step equal to the CATIA error is a very non-optimal approach…
I tried to enrich my method with searching and re-searching of the aforementioned area using CATIA error. That works better, but still slows down my workstation.
My tests show, that it goes rather smooth, if you limit the area to 1000 points for the first, coarse cycle, as well as for the second, precise cycle (in other words, I set the step to 0,5 mm with 0,5 meter-long spline).
Here’s the method available for download:
And here’s how to handle it :
As you can see, it’s still not perfect :-)…
This could have been handy when I was using Electrical Harness Installation, I’d throw a Porcupine Analysis on the curve but one had to seek out manually where the minimum radius actually was
Please read “The Shepard….” post. Actually its comments – there is a way how to solve that problem using Knowledge Pattern – this method is much more efficient than rule I described.