Nice routine, CAB!
One suggestion:
Would it be better to combine the "Pick Direction" part with the "Enter direction and distance [825=90 deg for 25'/Help/Undo]" part by using the "getpoint" function instead of the "getstring". We can input pre-defined direction by keyboard like 45,90 ect. At the same time, we can also use mouse to pick a special direction at any time needed. As to the key "5", I suggest, it could be use as the trigger for special direction input. We could input special num, like "536-6000". Here, "5" means special direction input triggered, "36" means the direction of line, "6000" means the length of line. You might need a "-" to seperate direction and length in case of mistreating special direction like "37.5", "97.52" or "185" ect.
This way, the input might be more easy, would it?