Scripting movements for specific control points of NURBS surface

If I have the following situation:

image

Is it possible to script something that only selects these control points that are circled to move forward until there is no overlap between the mesh bones and the NURBS surface?

Basically I am asking if there is way to first turn on a surfaces control points then select only certain points based on their number or position and then move these control points incrementally until there is no overlap with the mesh bone.

Hello - what is ‘forward’? From here it looks like rotating that ring of points is the first thing I’d do, working by hand. It all sounds like a tall order - why do you need to script this?

-Pascal

forward is shifting the x coordinate of each of these points down (away from the bone), I need to script this because this picture pertains to 1 phantom but I need this procedure to be done for hundreds of phantoms.