LinuxCNC / linuxcnc

LinuxCNC controls CNC machines. It can drive milling machines, lathes, 3d printers, laser cutters, plasma cutters, robot arms, hexapods, and more.
http://linuxcnc.org/
GNU General Public License v2.0
1.73k stars 1.13k forks source link

Update interp_convert.cc #2914

Closed Sigma1912 closed 4 months ago

Sigma1912 commented 4 months ago

With ini setting [RS274NGC] 'DISABLE_G92_PERSISTENCE = 1' G52/G92 should be reset to zero: https://linuxcnc.org/docs/html/gcode/coordinates.html#sec:g52

The current code only resets the numbered parameters [5210 .. 5219]

Sigma1912 commented 4 months ago

Maybe I'm reading the documentation wrong but it seems odd to me that an M2/M30 will leave G52/G92 active and only reset the parameter value to zero when DISABLE_G92_PERSISTENCE = 1 has been set in the ini file. What is the general opinion on this?

Sigma1912 commented 4 months ago

This is from the NIST publication on the RS274NGC standard: https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=823374

RS274NGC_m2

Which clearly states in Point 1 that G92/G52 is deactivated (G92.2) on M2/M30. So really this PR is actually not correct and I will change it and create an new one shortly