Yuck. I am sorry that this got worse between 2.5 and 2.7, but it is likely that there is no simple fix.
I think the root of the problem you're having is that: * AXIS has to change modes to AUTO to actually (re)load a part program * but at the time you make the reload request, you are in MDI mode and an MDI command is executing * so AXIS can't change to MDI mode right away (this is why it becomes unresponsive for a bit) * after this, the event-driven nature of GUI programming means that some function gets called when it shouldn't, resulting in the actual error message displayed. The comment block above the root_window.update() states why it is there: to ensure that key presses that occurred while the program was loading are discarded, rather than processed. It has also been there for a long time, well before 2.5.x. (in fact all the way back to before AXIS was integrated with the program once known as EMC, if my spelunking in the project history is accurate!) Unfortunately, the update also handles other events, such as the periodic checking of HAL pin changes or the reception of requests sent by axis-remote. These are inapproriate events to handle. But there's not sufficient control over *what kind of events* update() will handle. :( Without further analysis, I am loathe to simply remove that line. But if you are making local modifications to linuxcnc anyway, then go ahead and do whatever you need to do to make your system work like you need. If you do have additional analysis (such as what specific commit broke it, which may be findable using git bisect since you have a good procedure to reproduce the problem) or an alternative solution, please let us know what you are able to learn. Jeff ------------------------------------------------------------------------------ _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
