Wow, you need to take a course to understand all that needs to be done. Oops, you are taking the course ![Big Grin](images/smilies/biggrin.png)
Do they let you run your code on a real machine, even cutting air? That is the best way to learn.
With regard to your hole drilling routines, I've never used polar coordinates but I can kind of see the logic to it, and suppose it would work.
Some of your feedrates are a bit extreme. The chipload is how far the cutting edge can progress for each revolution of the spindle. This would be in the order of .05 to .1 mm/rev, per tooth. A drill has two edges, so at 1160 rpm the feedrate should be .05 * 2 * 1160 = 116mm/min. Don't confuse the depth of cut with the depth of the hole. They are not related. ![Smile](images/smilies/smile.png)
When tapping threads, the feedrate is calculated differently. The tap must be fed at such a rate that it advances at the same rate as its thread pitch. So a .05" pitch tap turning at 1326rpm, must be fed at a rate of .05 * 1326 = 66.3 inches/min which equals 1684mm/min.
G28 is not mirror image. It is "return to reference position".
So far as doing the center hole, I think drilling would be useful to open the hole. Drill undersize by a mm or two. Then, and get this, use tool radius compensation to interpolate the circle with an endmill in a second operation. This will get you an A+ on your report card ![Big Grin](images/smilies/biggrin.png)
The actual profile of the hole can be programmed using G03 CounterClockwise arcs and G41 tool radius comp Left. Typically, plunge position the tool safely inside the arc (by the amount of its radius, plus a few thousandths radial clearance (because the hole is rough), make a linear movement from the plunge point to the profile calling the G41 on the same line, and then use G03 arcs round the hole. Be sure to move back to the start plunge point as you cancel tool radius compensation with a G40.
First you get good, then you get fast. Then grouchiness sets in.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)