Just out of curiosity, what kind of control are you going to be programming? Fanuc?
Rather than spend time calculating intersections and compensation amounts, you might want to learn to use the control's tip nose radius comp function (G41/G42) if it's so equipped. Also, some controls have the option of Chamfering and Rounding built in. And some have a feature called Direct Drawing Dimensions Programming, which makes life real easy for manual programmers.