Given some 2D objects with corresponding normal vectors I'd like to snap them together such that their normal vectors become opposites. So it'd look something like the following:


Unfortunately I can't get them to stick from all rotations/orientations and am not sure what I'm doing wrong. Hopefully someone can help out. Here's the malfunctioning code:
var my_ang = cnct_joints.mine.normal_angle + cnct_joints.mine.get_global_rotd()
var their_ang = cnct_joints.theirs.normal_angle + cnct_joints.theirs.get_global_rotd()
my_ang -= 180 if abs(round(my_ang)) >= 180 else 0
their_ang -= 180 if abs(round(their_ang)) >= 180 else 0
var diff = my_ang - their_ang
var diff_sign = 1 if my_ang < their_ang else -1
diff -= 180 if abs(round(diff)) >= 180 else 0
set_global_rotd(get_global_rotd() + diff_sign * diff)