what I want to do is extracting surface data by ProSurfaceDataGet.
then transfer the UV point to XYZpoint.
after that, transferring XYZ point according to assembly coordinate system.
Below is my concept of getting each point on a surface.
However, I'm not sure if the XYZ point is the exact point on the surface.
One should range from 0 to 1 for U and V with interval 0.01 (as lower value as you want, but iteration wili increase)
You can check status of uv point (and hence XYZ point) on surface with the help of API ProSurfaceUvpntVerify().
For example, take two scenarios... 1. there is a hole at center of the surface and 2. No hole on surface. Check API behaviour for uv point as u =0.5 and V =0.5.
But what is that means when I used ProSurfaceDataGet to get the surface uv_max and uv_min, the value does not range from 0-1?
You might be talking about max and min point. I guess ProUvParam uv_min,uv_max.
ASAIK, uv_max is max point with UV as 1,1 and uv_min is min point with UV as 0,0. Range of U and V varies from 0 to 1.
This is my understanding. If anyone or you find something different, please share it..
UV parameters ranging from 0 to 1 are for untrimmed surfaces. Surfaces have contours (ProContour) - one need to check if a point is within a contour boundary... The functions ProSurfaceUvpntVerify() and ProContourUvpntVerify() need to be used. ProContour could be external or internal, so another test needs to be run for this...
The easier approach is to tessellate a surface and to use ProTessellationVerticesGet() to get an array of Pro3dPnt.