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. :)





Michael Johnson's picture

Maybe these two images will help.