Here is something to play with. No warranty, use at your own risk.
This is a fragment of some G-code that I made up a while back to do spiral cutouts. You add your data to the variables labeled 'INPUT' in the comment line. I just extracted if from a larger program and added the lead-in and lead-out for this thread, so set your Z above the piece and 'cut air' to be sure everything is working as planned. I think it works OK, but it is not tested in its current 'universal' form.
Comment out the G4 codes unless you are debugging. Just move the '(' ahead of the G4.
Holes are cut around X0 Y0. You can move to the hole center and zero your DRO, use offsets to get to the desired location, or set up variables in the program to hold coords other than X0 Y0.
Have fun . . .