Как установить полностью динамическую область построения графика?

Я пытаюсь совместить плоттер с ЧПУ и обработку изображений. Цель состоит в том, чтобы обнаружить объект и напечатать на нем. Мой вопрос заключается в том, можем ли мы установить полностью динамическую область построения графика.

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

Я планирую обнаружить руку с помощью камеры и установить руку в качестве области печати в прошивке ЧПУ, а изображение gcode поместить на палец. Как сказать прошивке ЧПУ, что это ваша область печати?

Надеюсь, вы понимаете мой вопрос.

Я использую прошивку GRBL с Arduino и использую pronterface в качестве программного обеспечения.

Пожалуйста, помогите и спасибо.

, 👍1

Обсуждение

Для правильного ответа на этот вопрос можно было бы воспользоваться некоторым дополнительным контекстом. Неизвестно, о каком типе приложения идет речь. Обычно область "печать" ограничена встроенным ПО или генератором G-кода (например, слайсером). Пожалуйста, [отредактируйте] свой вопрос., @0scar

Я студент последнего курса, и мой проект последнего курса-плоттер с ЧПУ с обработкой изображений. итак, последняя задача моего проекта состоит в том, чтобы обнаружить объект и напечатать на этом объекте, например, обнаружить руку и напечатать на пальце обнаруженной руки. поэтому я просто хочу знать, как выполнить эту задачу. как мне сказать моему плоттеру с ЧПУ, что это рука и отпечаток на пальце., @Tyson

Если ваш ЧПУ не знает о своем положении (используя конечные точки), он не может этого сделать, это зависит от вас. Вы должны расположить маршрутизатор в начальной точке G-кода и убедиться, что он не выходит за пределы. Таким образом, ответом может быть добавление конечных точек и, если возможно, ограничение в прошивке. Но мы не знаем прошивки. Кроме того, вам нужен какой-то датчик для обнаружения объекта и сканирования контуров., @0scar

Хорошо, сэр. но я как-то думаю об этом, если мы скажем прошивке с ЧПУ, такой как pronterface, что это ваша область печати. определите руку с помощью камеры и установите руку в качестве области печати на передней панели и поместите изображение gcode на палец. возможно ли это? Спасибо, @Tyson

Pronterface-это не прошивка, это программное обеспечение для печати, без знания того, где находится маршрутизатор (для того, чтобы узнать, где он находится, вам нужны конечные точки или получить определенное положение от датчика), вы можете назначить все, что хотите, в своем программном обеспечении для печати, фактические ограничения машины не проверяются., @0scar

о, извините, я использую прошивку GRBL с Arduino и использую pronterface в качестве программного обеспечения, @Tyson

Привет, Тайсон! Я дополнил вашу тошноту информацией из комментариев. Не могли бы вы просмотреть мой ответ, если он вам помогает, пожалуйста? Кроме того, мы не уверены в ваших текущих навыках G-кода - и имейте в виду, что 3d-принтеры ориентированы на несколько иной набор команд, чем станки с ЧПУ (*дуги, где вы?*). Проверьте ответ. Кстати. Мне нравится ваш проект, пожалуйста, оставьте ссылку на свой блог в комментарии :), @octopus8


1 ответ


1

Если проблема "динамической области" или даже "как избежать пропуска поверхности и границ" может быть переведена на "где начать четко определенную работу"-то это звучит для меня как обычная задача, применительно к философии станков с ЧПУ. (Хорошо, пока поверхность не начнет двигаться.)

Pronterface и GRBL работают в системе Cartesain. GRBL не поддерживает зондирование сетки. Поэтому вы должны думать об относительно плоских, плоских поверхностях.

На мой взгляд, для достижения цели необходимо выполнить следующие задачи:

  • Определите границы. Жесткие и мягкие границы устройства поддерживаются GRBL. Вы должны настроить их для общей безопасности.
  • Планирование задания. Распознавать диапазоны запланированной печати или печати.
  • Закрепите поверхность. Он должен быть надлежащим образом стабилизирован. Если вы хотите рисовать, ручка с пружиной выровняет вариации поверхности (рука, палец, яйцо). 3D - печать чувствительна к шероховатостям и наклону, мы добавляем плот/опоры, чтобы преодолеть их-может быть, это будет полезно, пока это не означает, что вы упустили свою цель? (Не печатайте горячими нитями на пальцах.)
  • Установить точку отсчета. Вам нужно разместить свою плоттерную или печатающую головку где-нибудь в пространстве по отношению к приводному оборудованию. Это необходимо для любых дальнейших действий. Я представил себе, как он наводит Z на верхнюю часть рамы, а не на цель.
  • Обнаружить поверхность. Камера поможет с горизонтальными границами (X,Y). Вам также нужно измерить расстояние Z. Зонд Z может быть механическим (тогда требуется вертикальное перемещение) или каким-то дистанционным детектором (например, VL53L0X ?).
  • Проверьте подгонку. Убедитесь, что поверхность будет соответствовать диапазонам запланированных заданий. На мой взгляд, это ключевой момент. Вы должны знать область в первую очередь.
  • Я вижу следующие варианты, чтобы выбрать и смешать окончательное решение из них:
    • G-код генерируется до всей процедуры. Необходимо синхронизировать начальную точку между сгенерированным файлом и реальным диапазоном заданий. Самонаведение выполняется "вручную" перед выполнением файла. После того, как поверхность обнаружена, реальная начальная точка может быть вычислена и применена.
    • G-код генерируется после обнаружения поверхности. Работа начинается с самонаведения, и первые шаги идут от нуля устройства (домашняя позиция) к выбранной начальной точке на поверхности. Все последовательные перемещения планируются в пределах границ по поверхности. Таким образом, нет никакого риска работать за пределами безопасного диапазона.
    • G-код генерируется с относительным позиционированием (режим инкрементного расстояния), имея G91 в преамбуле. Затем вы просто отправляетесь в начальную точку, а затем запускаете команды из файла.
    • G-код генерируется с абсолютным позиционированием (режим абсолютного расстояния). Для выполнения задания необходимо изменить систему координат с помощью таких команд, как G10, G54-G59.
    • Для печати, если есть необходимость, чтобы соответствовать какой-то плоской формы на ровной поверхности, то вам может потребоваться динамически генерировать некоторые опоры/плот ниже нижней части печатной части.

,

Привет, осьминог8. спасибо за ответ. Я думал об этом, что если я помещу 2 изображения g-кода на область построения пронтерфейса. первое изображение-это рука, которая является границей, а другое изображение-это дизайн для печати.[ссылка](https://ibb.co/bWw1ZTD) это изображение, надеюсь, вы понимаете, @Tyson

Имейте в виду, что G-код-это не изображение, а набор инструкций для принтера. Так что это "активная" часть. Я не уверен в вашем плане, но если Pronterface отправит и "звезду", и "крест" на принтер, они оба будут напечатаны. На 100% вы не избежите разработки нового исходного кода для создания этого проекта. Поэтому я бы предложил изменить эту серую квадратную сетку в фоновом режиме, вместо этого увеличивая сложность за счет добавления новых "активных" элементов. Найдите "def repaint_everything(self)" в "./printrun/gviz.py" ... Я почти уверен, что это правильное место для начала., @octopus8

Привет, осьминог8. Надеюсь, с тобой все в порядке. Я просто хочу знать, можем ли мы установить размер стола в баллах. Например, я обнаруживаю объект и помещаю объект на график, нахожу все координаты и устанавливаю координату как стол. Я надеюсь, вы понимаете., @Tyson

Боюсь, что это не так... Какие "точки" вы имеете в виду? Вероятно, нет [пункты"типография"] (https://en.wikipedia.org/wiki/Point_(типография))? Итак ...пиксели на экране? - тогда, пожалуйста, прочитайте [Как преобразовать миллиметры в пиксели?](https://graphicdesign.stackexchange.com/questions/25115/how-to-convert-millimeters-to-pixel) и [Вычисление точек per...](https://graphicdesign.stackexchange.com/questions/80334/calculating-dots-per-pixel-when-printing-an-image?rq=1), потому что размер стола измеряется в реальных единицах, в то время как пиксели относятся к разрешению и масштабированию дисплея., @octopus8

точки означают точки по осям x и y. например, я обнаруживаю объект, строю его на графике и получаю точки. теперь поставьте мой стол в качестве точек графика., @Tyson

@Тайсон, ты имеешь в виду пиксели экрана? (математика. "точки" не имеют размера!). А под графиком вы подразумеваете часть экрана (сетку в передней части)? Если это так, то все дело в масштабировании. Вам необходимо иметь возможность изменять реальные размеры (например, в миллиметрах) в соответствии с размерами экрана (пикселями). Сколько пикселей составляет 1 см в вашем "графике"? Поэтому вы должны знать *реальные* размеры предмета на поверхности (стол, палец и т.д.) И предмета для печати. Вот почему вы должны знать расстояние Z, среди прочего: иметь данные для расчета реальных размеров по фотографии и масштабирования в соответствии с размерами экрана, а затем установить свой "размер в точках"., @octopus8