Thank you for your compliment . I updated the article . I mentioned an experience value at the end of the article .

Calculate with my usual example :

In[]:=
n=10;manuallyFi=25.4;millCutter=12;
Using the Region function of Mathematica, the brute force numerical analysis is calculated as follows:
In[]:=
millPoints=CirclePoints
manuallyFi-millCutter
2
,0,n;​​circlePointListOnGrid=(millPoints*200//Round)/200;​​manuallyDisk=Disk[{0,0},manuallyFi/2];​​manuallyDiskArea=Area@manuallyDisk;​​millCuttersDisk=RegionUnion@Append​​Disk[#,millCutter/2]&/@circlePointListOnGrid,Disk{0,0},
manuallyFi-millCutter
2
;​​millCuttersAreas=Area@millCuttersDisk//N;​​Print"Answer is "//Style[#,Red,Italic,24,Thick]&,
millCuttersAreas
manuallyDiskArea
//PercentForm//Style[#,Red,Italic,24,Thick]&​​
Answer is 96.39%

I will make you a function cuttingRatio[n, b, a] according to your definition and you can get a solution.

cuttingRatio[n_,b_,a_]:=Block{},​​​​(*n=10;*)manuallyFi=b;millCutter=a;​​millPoints=CirclePoints
manuallyFi-millCutter
2
,0,n;​​circlePointListOnGrid=(millPoints*200//Round)200;​​manuallyDisk=Disk[{0,0},manuallyFi/2];​​manuallyDiskArea=Area@manuallyDisk;​​millCuttersDisk=RegionUnion@Append​​Disk[#,millCutter/2]&/@circlePointListOnGrid,Disk{0,0},
manuallyFi-millCutter
2
;​​millCuttersAreas=Area@millCuttersDisk//N;​​Print"Answer is "//Style[#,Red,Italic,24,Thick]&,
millCuttersAreas
manuallyDiskArea
//PercentForm//Style[#,Red,Italic,24,Thick]&
In[]:=
cuttingRatio[10,25.4,12]
Answer is 96.39%