Grorius, This is quite interesting.
This thread mentions that it is possible to vary the accelleration on the fly using the function emcAxisSetMaxAcceleration(axis, maxAcceleration)
forum.linuxcnc.org/20-g-code/26437-any-g...c-dec-override#33120
I did some work that extended the state tags structure to publish new interp.xxxx pins in motion that showed the arc radius and if its a circle or not in real time.
github.com/rodw-au/linuxcnc/tree/arc-radius
If you follow the commits ahead, you will find a pull request to Linuxcnc that fizzled out
github.com/LinuxCNC/linuxcnc/pull/900
My thinking was that a custom component could use these interp.xxxx pins to modify behaviour via some yet to be invented algorithm.
So you could call emcAxisSetMaxAcceleration() in real time to set your limit.
The other approach to do this is to use a gcode filter as we have done in the monokrom plasma config which probably provides almost exactly what you need.
github.com/joco-nz/monokrom-vcp
It already has the data handling for the velocity overides linked to hole radius (as a ratio of material thickness), and the material via a SQL database which could become pretty massive..
This video I did explains the hole handling in monokrom
Monokrom's gcode filter finds the holes as the gcode file is opened, removes the existing gcode and replaces it with our own optimised gcode.
I think Monokrom approach is probably the best way forward as it provides a near complete framework to manage what you want to do.
A lot of the Hypertherm TruHole technology is done in their cam software in the gcode generated. Linuxcnc does not have its own cam module but a gcode filter allows us to achieve the same result..
So many paths to achieve the same result... Nirvana!