- $C Check Mode повертає [MSG:Enabled] [MSG:Disabled] - Soft Reset (Ctrl+X (0x18 = 24)) + Імпорт фідерів у проєкт. Коли у проєкті вже є фідери не замінюються таблиця підходу. - Компенсація люфтів - Zoom ---------------------------------------------- - Рух без зупинок при зміні швидкості подачі: ---------------------------------------------- Треба у функціях позбавитися G0. перейти на G1 з вказанням подачі: async pnpSafetyGoToXYZ(x, y, z) async pnpGoToXYZA(x, y, z, a) async pnpGoToXYZF(x, y, z, feed) pnpSafetyUp(a) Спробувати обєднати функції: async pnpGoToXYZA(x, y, z, a) async pnpGoToXYZF(x, y, z, feed) Зробити функції типу pnpSafetyGoToXYZ_cmd(x, y, z) які б повертали б масив команд, використовувати їх у функціях типу pnpSafetyGoToXYZ тоді можна буде їх використовувати для створення пулу команд і відправлят їх sendCommands(cmdArray, wailIdle=false) тоді рух має бути без зупинок. Функції pnpPutOnNozzle, pnpPullOffNozzle переробити. pnpPullOffNozzle повертає false, якщо пройшли перевірки. Винести перевірки в окрему функцію. Тоді можна буде в один пул зібрати команди зняття і одягання сопла. Це має прибрати мікрозупинки Функція відправки пула команд приблизно така: async testMove() { console.log('testMove Start') let commands = ['G0 X-100 Y-100 Z-25', 'G1 Z-35 F300', 'G1 Z-50 F600'] for (let cmd of commands) { await this.sendCommand(cmd) } await this.sendCommands(['?'], true) console.log('testMove Stop') } await this.sendCommand(cmd) - запихує команди без очікування виконання. Це дає змогу планувальнику grblHAL нормально рухати без проміжної зупинки await this.sendCommands(['?'], true) - Чекає на закінчення всього пулу ----------------------------------------------