The tool compensation (your tool radius) is applied at a TANGENT to your precise position on the curve. You basicaly increase the radius programmed by your tool radius for convex and decrease it for concave by your tool radius value. An easy way to do it is just to increase the radius you program by the tool radius for convex CW cutting and decrease the radius you program by the tool rad and set NO COMPENSATION, it's a cheat, but isn't all engineering
Say you're cutting a 4 inch dia part with a start flat of 1 inch then a convex for 1 inch (in X) then a concave for 1 inch then a flat to X0.
Your tool (say it's 0.1" rad) would need to move back in Z by 0.1" Z for the first X 1". It would then need X compensation to the right by 0.1" and it would move into the part in Z as it tried to place itself rightwards and to the start of the curve.
Stick a 1.01 fillet betwen the flat and the first radius to stop this.
Think about it. Think about the centre of the tool, THAT is the path without compensation think how much you need to move it back in Z and left for concave, in in Z and right for convex.
The above two conditions are, of course reversed for CCW cutting rather than CW. But they remain the same even if you got the tool upside down.
Think about it.... draw a simple shape on graph paper. Get a penny and drill a hole in it- that's your tool (essentialy a circle). Trace the shape with the centre of the penny (tool path without compensation) and THINK how much you'd need to move it and where to get the edge of the penny to cut the surface... then the penny will drop
[Edit]Personaly, I'd just cut them radiused conrners without compensations but tell the prog the radius was the design rad plus the tool rad This has a problem if you change the tool though. you need to re programme.
I love deadlines- I like the whooshing sound they make as they fly by.