I hope @MartinBeh does not mind me jumping in here. YOu have to keep the protractor from in effect flipping over. Try the followinng:
-- location of three objects: Protractor, ObjectA and ObjectB
Ppos = $Protractor001.transform.pos
Apos = $ObjectA.transform.pos
Bpos = $ObjectB.transform.pos
-- unit-length vectors from H to A and B
vecHA = normalize (Apos - Ppos)
vecHB = normalize (Bpos - Ppos)
vecC = cross vecHA vecHB
-- angle in degrees
angDeg = acos (dot vecHA vecHB)
If (dot vecC [0,0,1]) >= 0 then angDeg
else (360 - angDeg )
lee.minardi