Having mounted my LED television on the wall I have a 80mm hole behind the TV, through which all the cables arrive. No-one can see it of course, but I know it's there and it needs finishing, otherwise I might start muttering incoherently.
It was designed in openscad and is fully parametric, it could doubtless be used for other purposes, including a desk grommet.
Download the OpenSCAD source file and edit with the measurements for your grommet. Compile and export as STL, then convert to gcodes in the usual way and send to your 3D printer.
The two halves of the cap seem to stick together slightly, but I found it easy to separate them.