In some cases the Geom_BSplineCurve returned by BrepAdaptor_Curve.BSpline() does not have the same endpoints as the original Edge and should not be used in place of Approx_Curve3d.