What curve monster is created by a 3-point control point spline ?

What curve monster is created by a 3-point control point spline ?

TrippyLighting
Consultant Consultant
2,326 Views
26 Replies
Message 1 of 27

What curve monster is created by a 3-point control point spline ?

TrippyLighting
Consultant
Consultant

The lowest degree curve that can be chosen for a control point spline is 3-degree.

According to the math of NURBS a 3-degree NURBS requires 4 control points. One each for the beginning and start of the spline and two intermediate points.

 

However Fusion 360 perfectly fine accepts three spline points ?

That same applies to 5 degree spline, which needs at least 6 points, but one can perfectly fine create a 5-degree curve with fewer than that in Fusion 360.

 

So the question is what kind of contorted monster does Fusion 360 create in tis case ?

 

The one on the left is a 5-degree curve with three points and the right curve is a 3 degree curve with 3 points ?

 

Screen Shot 2020-01-24 at 6.51.21 PM.png


EESignature

0 Likes
Accepted solutions (1)
2,327 Views
26 Replies
Replies (26)
Message 21 of 27

TrippyLighting
Consultant
Consultant

The original question about the 3-point spline curve monsters was formulated too late in the evening after a long day of work and the answer should really have been obvious.

 

I increasingly find myself confronted with modeling problems and almost exclusively when working with surfaces in Fusion 360. To find a solution for a given problem I then have to determine if this is a limit in my understanding or a limit in available tools or a technical limit in what can be accomplished with a given software. The latter one would be the kernel. 

Thus I am very interested in what is going on under the hood. So if the kernel can handle 5 and higher degrees of NURBS then that leaves 2 areas where I need t look for "solutions". Available tools and my own limitations. 

Here is one such model, which seems simple but attempting to have somewhat decent curvature continuity (G2)  or at the very least tangency (G1) across the main surfaces proved to be a challenge.

 

I was helping another user with this model. The main problem as so often was that Fusion 360 refused to shell part of the object, the high curvature area where the wing joins the fuselage. The reason was improper modeling techniques such as missing tangency and curvature continuity constraints in sketches and in lofts. 

I fixed most of these but also backed myself into a corner again in that same area having to fill a 5-sided area. I resorted to using a 5-sided patch and the curvature at the boundary is not great, but I was able to "shell" the object by individually offsetting and trimming surfaces.

 

Rumpf 4 trippy.pngRumpf 4 trippy rear view.png

While still less than ideal from a surfacing standpoint, nicely looking functional models can be created. This user 3D prints quite sophisticated models and wins competitions with his creations and I was happy to be able to help him.

 

This next image was my own project. The object I was really interested in was not the actual bicycle lamp. I needed an adapter in order to be able to attach it to my recumbent. Or perhaps better put, I did not like the adapter it came with when I purchased it. I'll leave it for the participants in this thread to figure out what kind of weird bicycle I ride 😉

 

Adapter II Z3.pngOBL Road Adapter front-bottom.pngOBL Road Adapter front-side.pngOBL Road Adapter front-top.png

 

With these images, I hope to highlight what I generally consider to be a modeling challenge. There is no way to model these objects solely with solid modeling techniques. Technical surfacing, on the other hand, requires quite a bit of knowledge of how NURBS surfaces work, so in essence, the original question was driven not by any specific modeling challenge but to gain a little bit of knowledge to help meet future challenges.  

 

Oh, and this "thing" was also 3D printed at Shapeways looks and works great.

 


EESignature

Message 22 of 27

jean.flower
Alumni
Alumni
Accepted solution

These are great examples.  Thanks for posting the images and describing the challenges.  It helps a great deal in my work to see such beautiful, award-winning and useful designs, and learn the stories of how the design evolved along the way!

 




Jean Flower
Product Manager
Autodesk, Inc.


Message 23 of 27

OceanHydroAU
Collaborator
Collaborator

I stumbled on this fascinating exchange in my quest to work out the precise "SketchFittedSpline" formula ( details in my question here: https://forums.autodesk.com/t5/fusion-360-design-validate/can-you-please-share-the-exact-sketchfitte... )

 

It might be of interest that I've written a genetic algorithm that takes any shape, and finds the exact (to the degree you decide) uniform cubic B-spline control points that describe it.  Unfortunately, I'm in a "holding pattern" on this right now on account of the mismatch between my results, and how Fusion 360 is interpolating the same control points...

 

Did you ever work out the algorithms used in your example?  Do you happen to know what algorithm is being used for the "fit point splines" inside the core ?uniform cubic B-splines in red, Fusion360 "SketchFittedSpline" aka (I think) "fit point spline" in blue.uniform cubic B-splines in red, Fusion360 "SketchFittedSpline" aka (I think) "fit point spline" in blue.

0 Likes
Message 24 of 27

TrippyLighting
Consultant
Consultant

As just another user I don't have any insights as to what the exact math and algorithms are behind fit-point spines in Fusion 360. But what has been shared previously is that they are 5-degree multi-span splines.

 

I would believe this is pretty "old" functionality and you might get lucky investigating foundations of the ACIS geometric modeling kernel. The geometric modeling kernel used in several Autodesk products is called ASM and is a close relative of the ACIS kernel.

 

I am not aware of any literature published about ASM, but books have been written about the ACIS kernel.


EESignature

0 Likes
Message 25 of 27

OceanHydroAU
Collaborator
Collaborator

Brilliant tips!  Thanks 🙂

 

Every sign (including that Doc you sent) points to these suckers being NURBS - but I think there's some magic under the hood that's messing with knots / weights / degree and endpoint termination method which I can't easily see a way in the API to get at (I'm a novice though, so there well might be, just I've not found it).

0 Likes
Message 26 of 27

MichaelT_123
Advisor
Advisor

Hi Mr OceanHydroAU

Your curve is based as you have pointed out on cubic spline. F360 automatically  generates up to 5-degree polynomial splines approximation, given  suficient number of constraining points. It is important to note that open splines generation requires establishment of boundary conditions, and this is the element of underlying algorithm influencing the final curve shape outcome. Visually it is particularly important for cubic spline as we can sense slope of a curve only , the first derivative. For higher degree splines, changes to higher derivatives at its end points will be indifferent to us, perhaps this is a reason why they are more often used today than cubic ones.

If you want to know more about the subject and do not afraid some itching under the scalp google 'SPLINE BOUNDARY CONDITIONS'

 

Regards

MichaelT

 

MichaelT
0 Likes
Message 27 of 27

OceanHydroAU
Collaborator
Collaborator

More cool refs - thanks again 🙂

 

I wrote the CPAN module Math::JSpline, which is a single implementation for a few orders (one through three I think - I'm a hobby mathematician - I grok the concepts, not so much the terms everyone else uses for them...) - and after I wrote a Covid-19 predictor using sigmoids with gradient-descent parameter discovery, it occurred to me that splines might make for improved generality... which is where the simplicity starts to break down.

 

I've been musing for a while now, that what is really needed here (when trying to find "simple rules" that describe complicated things - my current use case is airfoil shapes, but I'm fascinated by replacing "neurons" in ML with this too)... is a more flexible approach that lets the machine work out what's needed, instead of us trying to tell it.  So basically, some kind of primitive mathematical execution stack where not just the parameters, but also the operations on them, are defined more procedurally, thus being better suited for discovery by GPUs and the like.

 

Anyhow - that's all fun I can't afford to play with right now - I'm wrangling centipoise's, kelvins, pascals, and a smorgasbord of other messy things in my quest to get my users a perfectly-optimized foil.  Somehow I foolishly thought that would be easy, and it's sucked up 2 days already... 

0 Likes