GetAngleBetween
From scripting
Function GetAngleBetween(PtAx As Variant, PtAy As Variant, PtAz As Variant, PtBx As Variant, PtBy As Variant, PtBz As Variant, PtCx As Variant, PtCy As Variant, PtCz As Variant) As Double Dim Vec1() ReDim Vec1(2) Dim Vec2() ReDim Vec2(2) Vec1(0) = PtAx - PtBx Vec1(1) = PtAy - PtBy Vec1(2) = PtAz - PtBz Vec2(0) = PtCx - PtBx Vec2(1) = PtCy - PtBy Vec2(2) = PtCz - PtBz Length1 = Sqr(Vec1(0) * Vec1(0) + Vec1(1) * Vec1(1) + Vec1(2) * Vec1(2)) Length2 = Sqr(Vec2(0) * Vec2(0) + Vec2(1) * Vec2(1) + Vec2(2) * Vec2(2)) DotP = (Vec1(0) * Vec2(0) + Vec1(1) * Vec2(1) + Vec1(2) * Vec2(2)) Calc = DotP / (Length1 * Length2) 'Arccos (77) GetAngleBetween = (Atn(-Calc / Sqr(-Calc * Calc + 1)) + 2 * Atn(1)) * (180 / PI) End Function