×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Poles and knots of B-spline

Poles and knots of B-spline

Poles and knots of B-spline

(OP)
Hi! I am currently working with NX 10.0 and I am trying to find out the poles, knots and weights of the surface I've created with fit surface. I see the representation of those parameters but I don't know how to display or have a text or Excel file with x, y, z, of poles and knots and the knots's weights.

Anyone who has valuable advice would be much appreciated.

RE: Poles and knots of B-spline

I don't think there is an interactive "info" function that outputs this data.

A couple of ideas ...

You could export and IGES file, and that will include all the data you need.

Write a small program to output the data. You will probably need some code to organise the data the way you want, anyway. You could call either NX/Open or SNAP functions to do this. Here's an example written in VB, copied from the SNAP Reference Guide:

CODE --> VB

Imports Snap, Snap.Create

Public Class MyProgram

   Public Shared Sub Main()

      Dim p00, p01, p02, p03, p10, p11, p12, p13, p20, p21, p22, p23 As Position
      p00 = { 0, 0, 0 }   :   p01 = { 0, 3, 1 }   :   p02 = { 0, 6, 1 }  :  p03 = { 0, 9, 0 }
      p10 = { 3, 0, 1 }   :   p11 = { 3, 3, 2 }   :   p12 = { 3, 6, 2 }  :  p13 = { 3, 9, 1 }
      p20 = { 6, 0, 0 }   :   p21 = { 6, 3, 1 }   :   p22 = { 6, 6, 2 }  :  p23 = { 6, 9, 0 }
      Dim thruPoints As Position(,) = {{p00, p01, p02, p03}, {p10, p11, p12, p13}, {p20, p21, p22, p23} }

      ' Create Bezier patch through points
      Dim bsurface As NX.Bsurface = BezierPatchThroughPoints(thruPoints)

      ' Get face geometry
      Dim faceBsurface As NX.Face.Bsurface = bsurface.Face
      Dim geom As Geom.Surface.Bsurface = faceBsurface.Geometry

      ' Write out the geometry properties of the face
      InfoWindow.WriteLine("The poles of the b-surface are ")
      InfoWindow.WriteLine(geom.Poles)

      InfoWindow.WriteLine("The weights of the b-surface are ")
      InfoWindow.WriteLine(geom.Weights)

      InfoWindow.WriteLine("The knotsU of the b-surface are ")
      InfoWindow.WriteLine(geom.KnotsU)

      InfoWindow.WriteLine("The knotsV of the b-surface are ")
      InfoWindow.WriteLine(geom.KnotsV)

      InfoWindow.WriteLine("The degreeU of the b-surface is " & geom.DegreeU)

      InfoWindow.WriteLine("The degreeV of the b-surface is " & geom.DegreeV)

      InfoWindow.WriteLine("The orderU of the b-surface is " & geom.OrderU)

      InfoWindow.WriteLine("The orderV of the b-surface is " & geom.OrderV)

   End Sub

End Class

' Results: The output in the NX Information window is ...
'     The poles of the b-surface face are 
'     ( 0 , 0 , 0 )       ( 0 , 2.84096812404742 , 1.53524529396854 )( 0 , 6.36409902996395 , 1.43659706844564 )( 0 , 9 , 0 )       
'     ( 2.9604972293626 , 0 , 2.00008668895851 )( 2.9604972293626 , 2.84096812404742 , 4.30746296165522 )( 2.9604972293626 , 6.36409902996395 , 1.88480459229175 )( 2.9604972293626 , 9 , 2.00008668895851 )
'     ( 6 , 0 , 0 )       ( 6 , 2.84096812404742 , 0.0111836746879276 )( 6 , 6.36409902996395 , 4.49975544243664 )( 6 , 9 , 0 )       
'     The weights of the b-surface face are 
'     1         1         1         1         
'     1         1         1         1         
'     1         1         1         1         
'     The knotsU of the b-surface face is 
'     0         0         0         1         1         1
'     The knotsV of the b-surface face is 
'     0         0         0         0         1         1         1         1
'     The degreeU of the b-surface face is 2
'     The degreeV of the b-surface face is 3
'     The orderU of the b-surface face is 3
'     The orderV of the b-surface face is 4 

RE: Poles and knots of B-spline

So your subject says spline and your question says surface - for which is it you want information, the curves or the surface?

Regardless, I could be wrong, but I believe Information -> Object will give you the info you require for the curve or the face and make SURE you select the face entity, NOT the feature (Fit Surface). You should be able to save this info as a .txt file.

Tim Flater
NX Designer
NX 9.0.2.5 Win7 Enterprise x64 SP1
Intel Core i7 2.5GHz 16GB RAM
4GB NVIDIA Quadro K3100M

RE: Poles and knots of B-spline

The Info-->Bsurface function gives you ...

Degree in u 5
Degree in v 5
Rational status Polynomial
Number poles in u 6
Number poles in v 6
Number C0 seams u 0
Number C1 seams u 0
Number C2 seams u 0
Number C0 seams v 0
Number C1 seams v 0
Number C2 seams v 0
Number patches in u 1
Number patches in v 1

So, it does not include anything about poles or knots.

RE: Poles and knots of B-spline

Sorry - I missed that he required their coordinate locations.

I guess the number of poles and seams are nothing to some?

Tim Flater
NX Designer
NX 9.0.2.5 Win7 Enterprise x64 SP1
Intel Core i7 2.5GHz 16GB RAM
4GB NVIDIA Quadro K3100M

RE: Poles and knots of B-spline

Is there a reason why you want this data ?

Regards,
Tomas

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources