Заставить OctoPrint продолжать печать, когда я перевожу компьютер в спящий режим?

Что я видел

Вчера вечером я нарезал цветную капусту в Cura, воспользовался функцией «Отправить в OctoPrint»; возможность отправить его на принтер через плагин OctoPrint Connection (стандартный плагин Cura OctoPrint версии 3.7.3), убедился, что первый слой напечатан нормально, а затем перевел мой компьютер в спящий режим.

Именно тогда я заметил, что печать остановилась.

Что я ожидал увидеть

Я ожидал, что печать будет продолжаться в фоновом режиме, так как думал, что печать уже отправлена на «сервер» OctoPrint.

Похоже, что вместо того, чтобы Cura загружала G-код в OctoPrint (работающий на Raspberry Pi 5, подключенный к принтеру через USB), приказывая ему печатать, а затем просто отслеживая ход выполнения, он передает весь G-код в режиме реального времени, используя OctoPrint в качестве прославленного сетевого последовательного порта USB, что вообще противоречит цели использования «сервера» печати.

Что я пробовал

Я попробовал установить параметр «Сохранять G-код на SD-карте принтера», но Примечание: не шутил, когда говорил, что это займет много времени. Поскольку возможности отмены не было, мне пришлось перезапустить OctoPrint, что привело к принудительному отключению.

Что я хочу понять

Есть ли способ заставить Cura загрузить G-код в OctoPrint, а затем указать ему печатать, а не передавать его на принтер?

Я бы предпочел, чтобы мой энергоэффективный Raspberry Pi часами отправлял команды G-кода на принтер, а не мой энергоемкий игровой компьютер.


† В частности, Raspberry Pi 5, работающий под управлением ОС Raspberry Pi, образ от 5 марта 2023 г., полностью обновленный apt и работающий под управлением OctoPrint 1.9.3, установленного с использованием рекомендуемого сценария Octoprint_deploy.

‡ Когда я отправляю 50-страничный документ на свой сетевой принтер HP, я не ожидаю, что он прекратит печать после того, как я переведу компьютер в спящий режим!< /п>

, 👍0

Обсуждение

В поисках ответа на этот вопрос я нашел https://3d-printery.ru/topics/15935/63, но хотя вопрос намекал на этот вопрос, ответы давались напрямую, без очевидной проблемы с рамкой. Этот вопрос призван стать практическим и ответным эквивалентом вопроса, который, возможно, *основан на мнении*., @Mark Booth

Где работает Octoprint? Он должен находиться на устройстве, которое останется включенным и подключенным к принтеру (в вашем случае это звучит как RPi), а не на игровом ПК. Весь смысл веб-интерфейса в том, что вы можете *получить к нему доступ со* своего ПК, пока он работает на более подходящем устройстве, которое остается в сети и предназначено для определенной роли., @R.. GitHub STOP HELPING ICE

Извините @R..GitHubSTOPHELPINGICE, я думал, что было очевидно, что Octoprint работает на Pi, подключенном к принтеру, но я обновил свой вопрос, чтобы прояснить это., @Mark Booth

@MarkBooth, тогда ты, вероятно, вместо этого ссылаешься на OctoPi?, @Bob Ortiz

@MarkBooth Хорошо, что вы ясно дали понять, что он работает на RPi, я действительно думал прочитать между строк, что вы запускали его с ПК... Моя вина. Теперь я полностью понимаю вопрос., @0scar

OctoPi — это дистрибутивный образ @BobOrtiz, старая версия ОС Raspberry Pi с предустановленным OctoPrint. Это не общее имя для любого экземпляра OctoPrint, установленного на Raspberry Pi. Я использую Raspberry Pi 5, который не поддерживается OctoPi, поэтому он больше не указан в качестве опции в Raspberry Pi Imager для Pi 5. Как рекомендовано, я установил последнюю версию ОС Raspberry Pi. , а затем использовал для этого octoprint_deploy., @Mark Booth

Ох, ОП использует какой-то странный плагин Cura, который передает gcode из Cura в OctoPrint, вместо того, чтобы загружать задание в OctoPrint и завершать его? Я думал последнее было стандартным рабочим процессом..., @R.. GitHub STOP HELPING ICE

Я использую стандартный, рекомендуемый плагин Cura для интеграции с OctoPrint @R..GitHubSTOPHELPINGICE, меня смутил тот факт, что он работает таким странным образом. Если бы существовал плагин Cura, который вел бы себя так, как мы оба, очевидно, ожидали, я бы обязательно использовал его и был бы рад пожертвовать часть своей репутации, чтобы вознаградить этот ответ., @Mark Booth

Поведение плагина OctoPrint очень странное, теперь я понимаю, почему вы могли предположить, что @Oscar. Спасибо, что все равно пытаетесь помочь., @Mark Booth

Внесенные мной изменения соответствовали стандартам сайта. Кроме того, форматирование было скорректировано, чтобы облегчить пользователям с нарушениями зрения и/или использование программ чтения с экрана., @agarza

В будущем я буду более осторожен с использованием заглавных букв @agarza, но я не согласен с тем, что жирный шрифт более доступен, чем курсив. С точки зрения программ чтения с экрана он имеет точно такой же эффект «вырезки», и для многих людей жирный шрифт слишком раздражает, поэтому курсив дает возможность добавить акцент без этого эффекта. Я готов убедить вас в этом, но чат или мета были бы лучшим местом для этого., @Mark Booth

@MarkBooth См. раздел [Как написать доступную публикацию Stack Exchange?](https://meta.stackexchange.com/questions/394687/how-do-i-write-an-accessible-stack-exchange-post)., @agarza

Я знаю об этом посте @agarza, и ваши изменения не более соответствовали этому руководству, чем мой исходный пост. На самом деле, замена курсива на жирный, возможно, вызвала большее раздражение, чем ваше конструктивное участие., @Mark Booth


2 ответа


5

Ответом оказалось обновление Cura до последней версии.

Почему версия Cura имеет значение?

Старые версии Cura (задолго до версии 5.6.0) передавали команды в плагин OctoPrint Connection вместо того, чтобы загружать G-код в OctoPrint и позволять ону передавать команды на принтер.

Вероятно, это связано с тем, что OctoPrint Connection начинался как ответвление плагина UM3NetworkPrinting который предоставил интерфейс Cura для сетевых принтеров UM3, поэтому унаследовал это наследие.

Поскольку потоковые команды передавала сама Cura, если машину, на которой работает Cura, перевести в спящий режим, она прекратит потоковую передачу этих команд. Последняя версия Cura ведет себя так, как и следовало ожидать. Он загружает G-код в OctoPrint (а не в принтер, что будет очень медленно), а затем позволяет OctoPrint передавать команды на принтер, поэтому, если компьютер, на котором работает Cura, переходит в спящий режим, Raspberry Pi, на котором работает OctoPrint, продолжает отправлять команды на принтер. принтер.

Альтернативное решение

Если по какой-то причине вы не можете обновить версию Cura, есть несколько других вариантов, которые могут сработать.

Просмотр папки на моем NAS

Если у вас есть сетевое хранилище, вы можете сохранить файлы в общей сетевой папке, а затем смонтировать эту папку на OctoPrint Raspberry Pi в качестве папки просматриваемой, как подробно описано в Сетевое монтирование данных OctoPrint из NAS, затем отслеживайте ход выполнения в веб-интерфейсе OctoPrint, а не в Cura.

Переключиться на другой слайсер.

Другой вариант — переключиться на другой слайсер. Похоже, что интеграция OctoPrint в другие слайсеры также поддерживает печать после загрузки. Глядя на PrusaSlicer &amp; OctoPrint: как использовать их вместе, я вижу, что одним из шагов является установка флажка «Начать печать после загрузки». флажок, но я еще не проверял это.


,

Спасибо за обновления, отличный ответ. Не забудьте принять ваше решение как ответ на вопрос!, @0scar


-2

Очевидное, немного дорогое, но, вероятно, лучшее и наиболее распространенное решение — использовать Octopi. (это настолько распространено, что мне потребовалось некоторое время, чтобы понять, что вы запускаете Octoprint с ПК!)

Вы получаете Raspberry Pi 3b, или 4, или любую из большого количества более дешевых и доступных альтернатив (лично я использую Orange Pi Zero 2) — затем устанавливаете на него Linux с Octoprint. Вы включаете его от сети принтера через какой-то регулятор, подключаете к нему принтер через USB-кабель и подключаете его к домашней локальной сети через Ethernet или Wi-Fi. Он включен и работает во время работы принтера. Вы подключаете к нему Cura, чтобы загрузить gcode на его SD-карту (по локальной сети, очень быстро) и управляете им через веб-интерфейс. Это означает, что компьютер может находиться в другой комнате (на странице Octoptint отображается вид с камеры стола печати на втором экране на случай, если что-то пойдет не так), вы можете разрабатывать и нарезать свои проекты в тишине и выключать компьютер, когда закончите. , в то время как маленький Pi работает всю ночь, передавая gcode принтера через USB-соединение.

Конфигурация:

  • Из Cura Marketplace установите Octoprint Connection.

  • в Octoprint: значок гаечного ключа, функции > Ключи приложения
  • Сгенерировать ключ, имя: cura.

  • В Cura, Настройки, принтер, управление принтерами, выберите принтер, «Подключить Octoprint».

  • Выберите Octopi из списка, вставьте ключ приложения в поле ключа.

С этого момента ПК подключается к Octopi через сеть, поэтому передача между ними происходит намного быстрее, чем по последовательному порту, и после нарезки вы получаете раскрывающийся параметр «Печать с помощью Octoprint». кроме «Сохранить на диск». Выбрав «Печать с помощью Octoprint»; позволяет вам ввести каталог на Pi, отредактировать имя файла и выбрать, следует ли выбрать и начать печать немедленно — без этого он будет просто помещен на носитель данных устройства Octoprint, чтобы его можно было запустить из Octoprint позже. время.

,

Нет, у него есть Raspberry Pi, на котором работает OctoPrint, проблема в том, что OctoPrint используется через Cura, если да, то при выключении компьютера печать прекращается. Поэтому, хотя кажется, что он использует OctoPrint, инструкции отправляет Cura, поэтому, когда вы выключаете компьютер, инструкции перестают отправляться и печать прекращается., @0scar

@MarkBooth В моем случае «Отправить в Octoprint» занимает около 5 секунд, поэтому вам придется очень ускориться, переводя компьютер в спящий режим, пока он еще выполняется., @SF.

@MarkBooth Я отправил на принтер ночную печать, посмотрел первый слой, закрыл Cura, полностью выключил компьютер, пошел домой и утром вернулся к завершенной печати, когда компьютер был темным и тихим., @SF.

Хорошо, оказывается, это проблема версии Cura. Без изменения плагина «OctoPrint Connection», обновление Cura сделало мой диалог конфигурации «Connect OctoPrint» похожим на ваш, с возможностью выбрать «Начать задание печати после загрузки», поэтому сам плагин должен вести себя по-разному в зависимости от версия Cura, под которой он работает. Спасибо, возможно, ваш ответ не ответил на мой вопрос, но различия между вашими скриншотами и тем, что я видел, помогли мне найти ответ., @Mark Booth