Yes just use the G10 command.
G10 L12 G90 Pn Rn will put the diameter or radius Rn into the Tool Compensation Table for tool Pn.
For exampl to set the tool 1 comp diameter to 0.500" using diameter measure the command is G10 L12 G90 P1 R0.5; if it was using radius measure you would use R0.25.
This comp entry is called by G41 D01 and you can keep changing it through the program.
I prefer to put everything at the top of the program and instead of changing the entry for the tool I use several entries; this works on Haas but it may not on other machines. I would have:
G10 L12 G90 P1 R.5
G10 L12 G90 P21 R.51
G10 L12 G90 P31 R.75
Then for doing a profile or something I would make a roughing pass using G41 D31; then follow the same path using G41 D21 and finish with the G41 D01. Between each pass there is a tool compensation cancel (G40) back to the starting point.
This way you are not fiddling with values in the body of the program and you can tweak the final size by using the wear for tool 1.
One thing to watch with this technique is that if there are any concave (G03) curves in your profile the largest R value has to be small enough to fit inside these curves. That, or you have two sets of coordinates with the curves taken out of the roughing set.
An open mind is a virtue...so long as all the common sense has not leaked out.