-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug at the upper domain limit for unclamped splines (geomdl and Native implementations) #4722
Comments
Well, what I understood for now.
So to calculate how exactly corners must be cut, one has to have several control points at left of |
For example, if you try FreeCAD implementation of curve in your setup, you will see an error thrown from FreeCAD API. |
Aha, I managed to read 12th chapter of The Nurbs book :) However,
|
sv_knotvector.find_span() works in a special way when u_bar is near right end of curve domain. refs #4722.
It seems I managed to fix the bug in Sverchok implementation of knot insertion. For later, I added a flag into "Curve segment" node, to disable calculation of new NURBS curves. It may be useful to work around some problems in different implementations of Nurbs. @rendetto please test. |
@portnov Just tested... and for Sverchok(Native) implementation the bug is resolved! Thanks a lot! About Geomdl - I can try to contact Onur Bingol the creator of Geomdl, but I'm not sure that I can keep up with the math details :) In any case if Geomdl cannot get a bugfix we can still do a workaround with really tight tolerance: For 5th degree curve the distance in this case between the start and the end is 4.66e-07 far from any industrial application tolerance if we design for human scale. BTW the Curve Segment is really usefull with this NURBS output, but the corresponding Surface Subdomain node doesn't have NURBS output. Do you plan implementing that functionality? |
Shouldn't be too hard to implement. But I can't promise that I will do this soon. |
No pressure :) Thanks again. |
@rendetto I filed a bug to Geomdl library: orbingol/NURBS-Python#158 . |
I'm reporting the strange behavior of the unclamped splines mentioned in #4469
It is still present for Native and geomdl implementations with the most recent Sverchok master.
The setup is the same as used in #4469 (a constructed closed unclamped /periodic/ spline using wrapped control points - a convenient method for constructing arbitrary smoothly closed curves)
The problem is present when taking a segment from a spline and the end (TMax) of this segment is exactly at the upper domain limit (which is 1.0 in this particular example)
I found that reverting to an earlier version of Sverchok (32f8f36) this problem is not present for both Native and geomdl. I run this early version of Sverchok under blender-2.90.0-windows64 and also aligned it to the corresponding Sverchok-extra for the time being.
I also used the latest geomdl (v5.3.1) due to #3521 and orbingol/NURBS-Python#115
As with other similar issues I got, there is a workaround that could "solve" the issue by using a value of 0.99999 instead of 1.0
The text was updated successfully, but these errors were encountered: