Torus face analyse

I have a piece of torus face (from a more complex body) to analyse like this:

TorusCutaway.png

I would like to calculate the neutral axis length with:

  • The surface TorusParams (TorusParams Property (ISurface)​) which give me:
    • a center point (x, y, z)
    • an axis vector (x, y, z)
    • a major radius (R on image)
    • a minor radius (r on image)
  • The extremity curves (CircleParams Property (ICurve)) which give me:
    • the extremity points of neutral axis (x, y, z)
    • other informations...

To calculate this length:

  • I calculate an angle (rad) but the angle can be:
    • small: angle
    • large: 2*PI - angle
  • To determine the angle to use, I calculate:
    • the [center, extremity1] vector (x, y, z)
    • the [center, extremity2] vector (x, y, z)
    • the cross product of the vectors (x, y, z)
    • the dot product with the torus axis vector
      • if the dot product is positive (same direction):
        • the torus turns in a clockwise direction
      • if the dot product is negative (opposite direction)
        • the torus turns in an anti-clockwise direction

My problem is:

  • The torus axis is based on a starting and ending point (extremity1 or extremity2) but I don't know which one.

How can I find it?

Thank you for your help.

SolidworksApi macros