Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

NX 6 Spline recreation, please help

Status
Not open for further replies.

Linkblade

Mechanical
May 13, 2013
6
Hi there,

I’ve got a 3D CAD modelling question I would like to ask you. We are using Siemens NX 6.0.5.3 in our company.

What we like to do is the following:

1. Create a spline with an almost smooth first and second derivation (eyeballed with 2.derivation analysis view on curve is ok)
2. Save/Export the spline data list to harddrive (every necessary defining information)
3. Recreate this spline from the spline data list (manually by typing the data is ok)

What I actually did is the following:

1. I’ve created a spline by using Insert -> Curve -> Studio-Spline
ytwh59qm_jpg.htm

a. Point method
b. spline of 3rd degree
c. selected 4 previous defined points (I know there have to be [curve degree + 1] points at minimum for point method)
d. spline is there
e. right mouse clicked on the spline points and changed their tangent, tangent value and second derivation (curvature?) to make the second derivation curve between all points smooth. smooth means, that the curve (of the second derivation) has no jumps and no hard edges (see picture for example)
ga8j8co5_jpg.htm


2. I’ve read out the defining informations of the spline by using Information -> Spline…
87ummt8b_jpg.htm

a. Coordinates xyz of 12 poles and 8 nodes (knot points) building 9 segments are listed, which I think define this spline.

3. I now tried to recreate this spline by entering the read out informations.
a. Insert -> Curve -> Studio-Spline
b. pole Method this time, because NX is defining the spline with poles and nodes.
c. entered all the poles given from the previous outread spline information.
d. got a spline which goes right through all poles -> poles are identical!
e. but as you can see in the picture the nodes are not the same!
tvseuzuz_jpg.htm
the teal curve is the original and the red one is the recreated one.
f. when you zoom into the spot where dimension p913=180 ends in the defined white point, you see that the recreated curve does not go through the point! -> it’s not the same spline!


Is there a way to enter the poles AND the nodes when creating a spline?
Is there a way to create a spline more easiliy?
Did I do anything wrong?
Do you have any suggestions?

Thank you!
Best regards
Chris
 
Replies continue below

Recommended for you

WHY, pray tell, are you going through this exercise in the first place?

John R. Baker, P.E.
Product 'Evangelist'
Product Engineering Software
Siemens PLM Software Inc.
Industry Sector
Cypress, CA
Siemens PLM:
UG/NX Museum:

To an Engineer, the glass is twice as big as it needs to be.
 
I agree with John, however the knots vector is different for the two cases.

Frank Swinkels
 
Hm I see… if you ask for reasons, I guess there won’t be much of a solution for the task. But here are our reasons:

We need a spline with smoothed second derivation because of aerodynamic/hydrodynamic reasons (no whirl-building).
We want to describe our curves in drawings. In the past we just dimensioned a lot of “through-points” on the curve every mm. Firstly the curve is not completely defined by this method. A manufacturer could create this part totally according to its drawing, but the curve might not be as we wanted it to…because it’s not completely defined.

Secondly we noticed that the tiniest (necessary) rounding of the dimension spoils the whole curve, especially the second derivation. Therefore we wondered if a curve can be described more easily with less points and higher accuracy. We thought about how NX defines a spline and that we could do it this way as well.

Just define some points and get an explicit curve. Enter the curve definition on a different system and get the same curve. (Since a spline definition comes down to a polynom, this has to be possible). Tell a manufacturer the curve definition and he knows exactly what we mean. This would be great!

But to define a spline is tricky. I just created two splines with the same through-points (studio-spline, point method, 3rd degree, 8 points). The only thing I made different is a reversed order: 1# first set points on right place, then set spline on points 2# first set spline on points, then set points on right place (spline is associative with points). If you think NX creates the same spline, only because you have the same through-points, you’re wrong! I got two different splines as the spline information showed me.

If there is no option to completely describe and recreate we are forced to set a text-reference like “for curve definition see 3D model” in the drawings. But I’m not sure what happens with our claims then.

How is a spline defined in NX?
How are you transmitting spline/free form surface information to a manufacturer?
Is there a way to create a curve with a smooth second derivation more easily?
 
When you say "smoothed second derivation" what exactly do you mean ?

If i understand you correctly, you set tangent vectors/ Tangent value/ Curvature in the first case. I would guess that the resulting spline will be difficult to repeat by values in say a spreadsheet. - The amount of data needed should be quite high , if NX reports all that data, i don't know.

Many industries has this "problem", describing freeform objects on drawings is more or less impossible, look for example at a front fender of an automobile. I assume that the entire automotive industry relies on the 3D model as the legal definition and have drawings as supplementary data. Of course with a strict revision / date system.

Translating complex shapes is difficult, i have seen cases many years ago where the model looked quite different after a Step translation because the receiving CAM system had a different "view" on math.
Step or Parasolid should be your best bet. i guess all systems of today are Nurbs based. Also the VDA-FS standard should be reliable but might not be possible to use due to that not all systems support it.

Looking at your spline, To me that spline is "doing too much", i.e you should not "include" all that shape into a single spline object, ( If you care for the perfect shape that is, in case you simply want to create "some spline" it's ok) create multiple splines and let each spline only do an s-shape at the max. If you try to cover the entire span with a single spline, you will soon have to start manipulating the tangent vectors etc. Also the risk getting unwanted undulations and inflections increases when the number of segments increase and one does shapes like the one shown.
I guess that if you create very simple splines ( without the tangent vector manipulation etc), the reported coordinates will be repeatable from a data list.


Regards,
Tomas



 
With regard to

"But to define a spline is tricky. I just created two splines with the same through-points (studio-spline, point method, 3rd degree, 8 points). The only thing I made different is a reversed order: 1# first set points on right place, then set spline on points 2# first set spline on points, then set points on right place (spline is associative with points). If you think NX creates the same spline, only because you have the same through-points, you’re wrong! I got two different splines as the spline information showed me."

I suggest you create the knot points (Insert->Datum/Point->Pointset) using SplinePoints, knot points and you will see the two splines have different knot points. This is because the knot vector is different for the two splines. It is possible to change the knot vector and have the spline equal even though the poles are reversed.

Now the problem is that I know of at least three commonly used methods for determining knot vectors. Therefore transferring just poles and order is not sufficient. To transfer splines data I think you should use single segment splines.

My approach would be to create your first spline as a degree 5 spline through points. Using your example spline of 8 points the spline would have 3 segments which are defined by the knot vector. Improve the spline as desired (end conditions of slope and curvature) and internal points. Now create the knot points and remove parameters from the point set. Divide the spline at the knot points so that you now have 3 splines. You can use the poles for the individual splines as defining data that would give you the same spline on any other CAD system as long as the receiving system can create a degree 5 spline. The knot vector for these spline is now [0,0,0,0,0,0,1,1,1,1,1,1]. My reason for degree 5 single segment splines is that it possible to do pole rounding and still control the spline smoothness (another topic for discussion if required)

Frank Swinkels
 
Linkblade said:
How are you transmitting spline/free form surface information to a manufacturer?

I work in small consumer goods (lots of injection molded plastic parts with lots of freeform surfaces); when we are done designing a part, we send 2 files to the toolmaker:[ul]
[li]3D file (usually parasolid)[/li]
[li]Drawing of the part showing inspection dimensions[/li][/ul]
The toolmaker uses the 3D file to drive toolpaths and the drawing to check finished dimensions. There's no practical way (that I know of) to capture all of the freeform information on a paper drawing.

www.nxjournaling.com
 
Thank you very much everyone! It worked! All the information was very helpful! I now was able to recreate the modified spline by trimming it at the knot points (Thanks FrankSwinks ;). The poles of the spline then changed to different and new ones (more than before, exactly [amount of poles] = [amount of segments] * 2 = ([amount of knot points] + 1) * 2). These poles formed single segments of the whole spline and are all together what i wanted. Only thing i noticed is, that after putting the several segments in a row the curvature forms little edges at the knot points (see image). But the tangents are consistent and curvature has no jumps. So that's great!

P.S.:
Toost said:
When you say "smoothed second derivation" what exactly do you mean ?
Linkblade #1 post said:
smooth means, that the curve (of the second derivation) has no jumps and no hard edges (see picture for example)

FrankSwinks said:
The knot vector for these spline is now [0,0,0,0,0,0,1,1,1,1,1,1]
What is a knot vector? And why does it have 12 numbers?

FrankSwinks said:
My reason for degree 5 single segment splines is that it possible to do pole rounding and still control the spline smoothness
What do you mean with this? (I made a degree 3 spline and trimmed it, maybe that's the reason for curvature edges at the knot points?).

cowski said:
I work in small consumer goods (lots of injection molded plastic parts with lots of freeform surfaces); when we are done designing a part, we send 2 files to the toolmaker:

3D file (usually parasolid)
Drawing of the part showing inspection dimensions

The toolmaker uses the 3D file to drive toolpaths and the drawing to check finished dimensions. There's no practical way (that I know of) to capture all of the freeform information on a paper drawing

Thank you! :)
 
Regarding degree 5 spline.

For a single segment degree spline if one end point curvalure is adjusted then the other end point curvature is also changed. Consider a single segment degree 3 spline with poles P0, P1, P2 and P3. The curvature at P0 is controlled by P0, P1 and P2 and the curvature at P3 is controlled by P3, P2 and P1. The equation for the curvature at an end point (p0) is given by K= ((n-1)/n)*(b/a^2) where n is the degree, a is the distance between P0 and P1 and b is the distance of P2 to the tangent spanned by P0 and P1. Adjusting P1 or P2 affects both end point curvatures. Note that P1 and/or P2 can only be moved along the tangent lines. Now for a degree 5 sigle segment spline we can adjust one end point curvature without affecting the other end point curvature.

Regarding knot vectors.

For a degree 3 spline with two segments the knot vector is [0,0,0,x,1,1,1] where x is some value between 0 an 1. The curve is basically defined as two splines with the parameter t ranging from 0 to x and from x to 1. As shown before changing x changes the curve. To explain this further would take far too much. I hope this does the job.

Frank Swinkels

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor