Hi, I'm curious too:-)
BTW: "effective radius surface" is quilt (from two surfaces) – instead ProSolidSurfaceVisit use the ProSolidQuiltVisit and this quilts visit by ProQuiltSurfaceVisit to get their surfaces (PRO_SRF_CYL).
But, suppose, we are solving just only imported geometry.
So I don’t think there is the exact solution, how to pair the thread surface with the drill hole. It is an analytical solution of geometry, and the result should be verified by the user.
I can compare the radius of coaxial surfaces and guess, in a certain range, if the dimensions (radius) correspond to the ISO standard.
First, I collect quilt surface (ProSolidQuiltVisit ->ProQuiltSurfaceVisit -> ProSurfacedataGet -> PRO_SRF_CYL -> ProCylinderdataGet -> [origin, e3, radius]), then almost the same for ProSolidSurfaceVisit (PRO_SRF_CYL -> [origin, e3, radius]), and pairing with quilt surfaces for the same origin, e3 (possible radius acc. to a table/list or by ratio).
If some sld surface is paired with qilt surface, I can e.g. setAppearance to surf as ISO hole.
Well, good luck:-)
PZ