Написание G-кода: оптимизированный по длине тестовый код

Я хочу написать пару очень простых тестов G-кода в стиле Marlin, чтобы убедиться, что мой принтер работает правильно. Идея состоит в том, чтобы проверить систему движения, затем конечные остановки, затем нагрев и способность удерживать температуру. Но Marlin уже работает большой, поэтому я не могу выделить слишком много строк в базовой настройке, если я хочу интегрировать ее в прошивку.

Тест, который я имею в виду, - это такой порядок операций, охватывающий основу каждой оси и тепловой контроль:

  • Печатающая головка должна двигаться вверх на 20 мм, затем вправо и вперед.
  • печатающая головка должна быть дома.
  • печатающая головка должна снова подняться на 20 мм.
  • Предварительный нагрев должен быть сделан (стол 50°C, головка 180°C).
  • Принтер не должен ничего делать в течение 2 минут.
  • Принтер должен остыть.
  • Дважды пискните, чтобы сообщить, что тест завершен.

Как лучше всего настроить такой тестовый код в наименьшем количестве строк? Неужели я забыл одну важную команду для проверки?

, 👍-1

Обсуждение

Я не думаю, что этот вопрос хорошо подходит для stackexchange. Это в основном вопрос "сделай мое домашнее задание", и он [не показывает никаких усилий](https://3dprinting.stackexchange.com/help/how-to-ask). Он также невероятно специфичен (и, следовательно, бесполезен для кого-либо еще), фокусируясь на очень конкретном тестовом сценарии, который вы хотите., @Tom van der Zanden

@TomvanderZanden вы *ПОНИМАЕТЕ*, что а) я поместил его в [tag:knowledgebase] - где объясняются *ОСНОВЫ* б) Я написал ответ, который занял у меня немного больше времени, чем ожидалось в) крайняя конкретность здесь нужна, потому что это *очень специфический тестовый пример: работают ли двигатели, работает ли самонаведение, работает ли нагрев. г) G-код можно запустить практически на любом принтере, независимо от его размера., @Trish

Я видел, что вы написали ответ, но это не меняет того, как следует оценивать вопрос., @Tom van der Zanden

Я думаю, что для "базы знаний" вопрос "Как написать G-код, чтобы сделать движение?" или "Как приказать нагретому столу нагреться?" или "Как приостановить печать?" это может быть более подходящим изолированным вопросом (хотя, конечно, это все еще очень простые вопросы)., @Tom van der Zanden

Я думаю, что для программирования stackexchange вопрос типа "Я хочу написать программу, которая делает A, затем B, затем C" не будет считаться подходящим. Но вопрос "Как сделать Б?" может возникнуть. Это, кажется, эквивалент этого?, @Tom van der Zanden


1 ответ


Лучший ответ:

2

Я могу перейти к 13 строкам, используя 6 команд: G1 движения, G28 самонаведение , M140 установка температуры стола без паузы, M109 установка температуры хотенда , G4 dwell паузаи M300 звуковой сигнал.

G1 Z20 F1000
G1 X20
G1 Y20
G28
G1 Z20
M140 S50
M109 R180
G4 S60
M140 S0
M109 R20
M300 S440 P200
G4 P200
M300 S660 P200

,

... и это можно было бы поместить в одну строку и добавить в качестве "Самопроверки" пользовательское меню item для легкого доступа. Возможно, это было причиной требования "в наименьшем количестве строк". Мне нравится эта идея :) это помогает внедрить цикл PDCA в улучшения принтера. Это может быть даже встроено в Marlin, который знает о текущем положении (риск повышения gcode при запуске) и оборудовании (динамик против зуммера)., @octopus8