Firstly we need to do these steps so that the local orientation of the controller matches the local orientation of the joints –
V – Snap the controller box to the world origin.
Group it to itself, call it buffer.
Select the wrist joint.
Select the buffer.
Parent constraint – no maintain – it should snap up into position.
Delete the constraint – now the local orientation axis is matching whilst retaining zero rotations on the controller, only the buffer retains the garbage values.
Apply an RP solver from shoulder to forearm. We use RP rather than SC so that we can point the elbow independently.
Grab the PIVOT of the end effector and snap it to the wrist, the solver will still calculate to the forearm but we have move the goal to the wrist. This stops the forearm from snapping.
Apply the pole vector constraint from the IK handle to the elbow control.
Point constrain the IK handle to the hand control.
Orient constrain the wrist joint to the hand control.
Select the hand control, then the forearm JOINT.
Orient constraint but ONLY IN X.
Select the elbow joint, then the forearm joint.
Orient constrain but ONLY IN X.
Now we have 2 orient constraints for the forearm joint. Set the weights at .6 for the hand control and .4 for the elbow.