#### Agostino De Marco

##### CAD practitioner

**I have this problem:**

// a plane

gp_Pln

**plane**= ...

// a collection of 3 points

Handle(TColgp_HArray1OfPnt2d)

**points**= new TColgp_HArray1OfPnt2d(1,3);

**points**->SetValue(1, ... );

**points**->SetValue(2, ... );

**points**->SetValue(3, ... );

// a 2d interpolating curve

Geom2dAPI_Interpolate

**interp**(

**points**, false, Precision::Confusion());

**interp**.Perform();

const Handle(Geom2d_BSplineCurve)

**curve**=

**interp**.Curve();

/*

I need to make an edge with OCCT v7.6.3 using the function:

**BRepBuilderAPI_MakeEdge**(const Handle< Geom2d_Curve > &L, const Handle< Geom_Surface > &S)

so ...

*/

Handle(Geom_Surface)

**splane**= new Geom_Plane(

**plane**);

// how to get a handle to

**Geom2d_Curve**from a

**Geom2d_BSplineCurve**??

// this line below doesn't work

Handle(Geom2d_Curve)

**scurve**=

**interp**.Curve();

TopoDS_Edge

**edge**=

**BRepBuilderAPI_MakeEdge**(

**scurve**,

**splane**);

I guess this is a lack that I have in understanding the basics of OCCT.

Thank you in advance for your help,

Agostino