hello, I have some problems, please give me some guidance.

here is a free surface like NURBS, and a free curve like B-Spline

they intersect, so there is an intersection point

now I need to shift this intersection point from the surface for some distance to get a new point, the law of the shift is normal to the surface at the intersection point

if I program the NIURBS algorithm, it's too complected, also python is slower than c++, so I hope FreeCAD has some api to do this, finally output the xyz coordinate value of the point

I checked the wiki but can't find the api, please tell me how to do this.