It would be helpful to add a “OnSurface” option in the command line upon drawing a circle object. Also, a centermark helper could be temporarily placed in the exact middle of the picked surface to make it easier for the modeler to build a circle in the ideal position. This is mostly useful for people working on architectural projects or mechanical parts for CNC-machining.
A macro may help for now -
! CPlane Object Pause Circle Pause Pause CPlane Undo
Wow, this works on freeform surfaces as well. Really handy for situations where a hole must be created normal to a complex panel.
@pascal Pascal, your macro also works, but it performs best on flat surfaces since it’s based on plane approximation and flat surfaces naturally have a predictable CPlane.