How to get the intersecting contour between two face

Hi, Bros. I have two TopoDS_Shape, one is B spline surface, another is cylinder surface, I would like to get the intersecting contour of the two face, I try to do this with Boolean Operations, I 'm new in OCCT, I have no idea which tool in OCCT can accomplish it.

Mikhail Sazonov's picture

BRepAlgoAPI_Section is the proper tool for this.

linbei jianbaoxia's picture

Thanks for your suggestion, I try to use BRepAlgoAPI_Section and BRepAlgoAPI_Common, and all the result TopoDS_Shape is TopAbs_COMPOUND, however, I thought the intersecting contour between B Spline surface and cylinder maybe a curve, actually maybe a B Spline curve. I don't find the way to get the curve from the result TopAbs_COMPOUND.
Am'I wrong?

linbei jianbaoxia's picture

I think maybe I figure it out, I use TopoDS_Iterator to the result TopAbs_COMPOUND, and get the TopAbs_EDGE which contain the GeomAbs_BSplineCurve.
Now I try to find a tool to judge is the two GeomAbs_BSplineCurves are equal or not, to make sure the GeomAbs_BSplineCurve is the right curve i want.