Hi Willy, there are 2 things to consider:
First, the angle the method returns is in radians, so you’ll need to convert it to degrees.
Second, if you do not provide a proper plane, it can be that you’ll get the reflex angle, which you have to subtract from 180 degrees. This seems to be the case here,
2.059 in radians equals
117.97201 degrees, once you subtract it from
180 you’ll get
You’ll might also try to use the method which allows to define a plane. Using a plane normal as a third vector technically allows to get a signed angle. The math behind should be something like below function, which is python btw:
def GetSignedAngle(Va, Vb, Vn):
'''gets signed angle between Va and Vb, Vn is the plane normal'''
# all vectors must be unitized
cross = Rhino.Geometry.Vector3d.CrossProduct(Va, Vb)
# angle in radians
return math.atan2(cross * Vn, Va * Vb)