How to get the parametric trimming curves of a B-Spline surface

Hi all,

 

I was wondering how to get the B-Spline outer wire of a B-Spline surface from a TopoDS_Face.

 

I've tried using BRepTools::OuterWire on the face to get the outer trimming curves. I then convert the wire edges to Geom2d_Curve using BRep_Tool::CurveOnSurface then convert them to Geom2d_BSplineCurve using Geom2dConvert::CurveToBSplineCurve.

 

I convert the face to Geom_Surface using BRepBuilderAPI_NurbsConvert and BRepLib_FindSurface and then convert to Geom_BSplineSurface using GeomConvert::SurfaceToBSplineSurface.

 

The problem is that the trimming curves' NURBS data (i.e. poles, knots and weights) are wrong for the B-Spline surface. I have tried this on a very simple surface consisting of a circular surface from an IGES file.

 

Does anyone have any ideas?
 

Any help will be appreciated. :)

 

 

Thanks,

Mike

Michael Johnson's picture

Maybe these two images will help.

Attachments: