I used the Evaluate function of the BSplineCurve2d object.
It takes a double in the range of 0 to 1 which are the extreme ends of the curve and returns the x,y point at that location.
For example, 0.5 will return the point coordinate half-way along the curve.
The bspline curve also has a Length property.
Then my program asks how many divisions to be made or in other terms the fineness of the bubbles from which the number of arcs to be placed can be calculated. Then simply create arc2d objects along the curve using the points as center points and the diameter the same as the bubble size.
There is additionally a check to find the direction of the curve which I am forgetting so that the arcs can be consistently placed bulging outside and don't curve inside. I will check my code and revert.
For personal or non-commercial use, I can share my entire code as well.
If this is for NX, let me know, I have done this for NX as well.
But it would be quite easy to find the equivalent function for NX Curves.
What I remember during my NX exploration was there were way too many types of curves in NX each with its distinct object types and set of functions and properties.