Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
наверняка многие сталкиваются с необходимостью по прототипу или с использованием прототипа сделать нечто. Не параметрическое, а-ля арт-объект. Обычно это в виде фотографии. И использовать в чем-то бОльшем, параметрическом, с заданными размерами и пр.
Известное решение - скрипт image-to-gcode из состава LinuxCNC. Работает сносно. Требует радикальной подготовки картинки. Использует линенное преобразование "мера черного -> высота", что является существенным недостатком. Возьмем inkscape, нариуем окружность, сделаем на нее градиентную заливку а-ля шар. Эту картинку скормим i-to-g и получим грубый конус. Выход? - питон-скрипту было бы правильно научиться выводить одновременно линейное преобразовани, cos & cos^^2 (это по моим экспериментам дает что-то близкое к шару в этом эксперименте).
Тупиковое (покамест) решение - FreeCad и верстак Litophane дает из картинки множество точек, Mesh. Туда же можно ипортировать g-code от скрипта i-tо-g, увидеть и перемещать по чертежу, модели, но на этом и "все".
Какой есть опыт решения такого рода задач? желательно не в виде "иди ты в bleder", реальный путь к успеху. Искать и использовать библиотечные блендеровые модели - IMHO упадничество, они (все мною виденные) имеют очевидный привкус примитивизма 21 века. Задача стоит именно в использовании графики, фотографий (в т.ч. из собственных этнографических экспедиций).
К примеру вот две женщины, их века у них написаны на лицах -
Известное решение - скрипт image-to-gcode из состава LinuxCNC. Работает сносно. Требует радикальной подготовки картинки. Использует линенное преобразование "мера черного -> высота", что является существенным недостатком. Возьмем inkscape, нариуем окружность, сделаем на нее градиентную заливку а-ля шар. Эту картинку скормим i-to-g и получим грубый конус. Выход? - питон-скрипту было бы правильно научиться выводить одновременно линейное преобразовани, cos & cos^^2 (это по моим экспериментам дает что-то близкое к шару в этом эксперименте).
Тупиковое (покамест) решение - FreeCad и верстак Litophane дает из картинки множество точек, Mesh. Туда же можно ипортировать g-code от скрипта i-tо-g, увидеть и перемещать по чертежу, модели, но на этом и "все".
Какой есть опыт решения такого рода задач? желательно не в виде "иди ты в bleder", реальный путь к успеху. Искать и использовать библиотечные блендеровые модели - IMHO упадничество, они (все мною виденные) имеют очевидный привкус примитивизма 21 века. Задача стоит именно в использовании графики, фотографий (в т.ч. из собственных этнографических экспедиций).
К примеру вот две женщины, их века у них написаны на лицах -
- шпиндель
- Мастер
- Сообщения: 1810
- Зарегистрирован: 23 янв 2016, 17:57
- Репутация: 901
- Настоящее имя: Дмитрий
- Откуда: Бологое
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
два метода...заказать 3д умеющим делать такое или самому научиться 3д...других вариантов нет ...думаю вилка примерно 10 т руб , русалка 6 т
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
русалка и даром не надо. Равно как и вилка как таковая. Мне удочка нужна, а не рыба. Не говоря уже о том, что чаще всего заказные модели даже по хорошим образцам становятся такими русалками. Речь идет о механизмах трансформации, а не поиске исполнителя.
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Года два назад в топике уважаемого Гармониста я делился результатами и наблюдениями viewtopic.php?p=560044#p560044
Пришлось самому повозиться, оказалось не сложно.
В исходном image-to-gcode, который идет в составе LinuxCNC, скрипт преобразует черно-белую картинку в готовый к использованию на CNC g-code. При использовании этого скрипта становится очевидной простая проблема - скрипт использует линейную логику преобразования "черное = линейная функция высоты", а в жизни, на реальных изображениях, эта функция не линейная. Пример простой - создадим в Inkscape окружность + заливка + градиент для визуальной иллюзии "объемный шар". Это изображение обработаем в скрипте и увидим, что получили = конус.
Я в python полный "нуль". Поэтому осторожно внес исправления в код для реализации универсальной функции изменения этой логики в нелинейную, тригонометрическую с показателем степени. Я сознательно не затрагивал никакие другие разделы логики. При указании показателя степени 0 мы получаем исходный результат (линейный). Любое другое заданное число (в качестве параметра настройки логики), можно отрицательное, можно не целое, дают иной результат - можно экспериментировать. На самом деле можно будет реализовать поле ввода текста задания любой другой логики преобразования "чернота-высота".
Попутно исследовал влияние усложнения логики на время вычислений - почему-то не влияет, хотя тригонометрические функции и вовзведение в степень должно бы усложнять вычисления и существенно (со студенческих 80-х помню трюк вместо квадрата и куба явно задать умножение).
Я посмотрел на GIT число клонов этого скрипта и не хочу создавать еще один (из большого множества). Добавленный функционал важен, на исходный (линейный) функционал не влияет. Важно - в моей "системе" я редактировал исходный файл в /usr/bin/ (поскольку при переносе в хомовник он при запуске ищет в /home/share .... tc, бороться с этим я не захотел, хотя и мог подсунуть симлинк).
Следующий этап - исследование GIT на тему "картинка -> mesh". Решений там предлагается много, например
https://github.com/coltonbishop/donatello
https://github.com/search?p=3&q=image-t ... positories
Если кто потратит время на исследование и обзор - было бы мило.
Пришлось самому повозиться, оказалось не сложно.
В исходном image-to-gcode, который идет в составе LinuxCNC, скрипт преобразует черно-белую картинку в готовый к использованию на CNC g-code. При использовании этого скрипта становится очевидной простая проблема - скрипт использует линейную логику преобразования "черное = линейная функция высоты", а в жизни, на реальных изображениях, эта функция не линейная. Пример простой - создадим в Inkscape окружность + заливка + градиент для визуальной иллюзии "объемный шар". Это изображение обработаем в скрипте и увидим, что получили = конус.
Я в python полный "нуль". Поэтому осторожно внес исправления в код для реализации универсальной функции изменения этой логики в нелинейную, тригонометрическую с показателем степени. Я сознательно не затрагивал никакие другие разделы логики. При указании показателя степени 0 мы получаем исходный результат (линейный). Любое другое заданное число (в качестве параметра настройки логики), можно отрицательное, можно не целое, дают иной результат - можно экспериментировать. На самом деле можно будет реализовать поле ввода текста задания любой другой логики преобразования "чернота-высота".
Попутно исследовал влияние усложнения логики на время вычислений - почему-то не влияет, хотя тригонометрические функции и вовзведение в степень должно бы усложнять вычисления и существенно (со студенческих 80-х помню трюк вместо квадрата и куба явно задать умножение).
Я посмотрел на GIT число клонов этого скрипта и не хочу создавать еще один (из большого множества). Добавленный функционал важен, на исходный (линейный) функционал не влияет. Важно - в моей "системе" я редактировал исходный файл в /usr/bin/ (поскольку при переносе в хомовник он при запуске ищет в /home/share .... tc, бороться с этим я не захотел, хотя и мог подсунуть симлинк).
Следующий этап - исследование GIT на тему "картинка -> mesh". Решений там предлагается много, например
https://github.com/coltonbishop/donatello
https://github.com/search?p=3&q=image-t ... positories
Если кто потратит время на исследование и обзор - было бы мило.
- Вложения
-
- image-to-gcode.zip
- (8.1 КБ) 176 скачиваний
- Леонид Владимирович
- Мастер
- Сообщения: 340
- Зарегистрирован: 07 дек 2018, 09:11
- Репутация: 34
- Настоящее имя: Леонид Владимирович
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Модель по картинке - это "фотограмметрия" называется.
Пробовал программу 3DF+Zephyr.
Требует несколько фотографий с разных сторон, цепляется за текстуру поверхности и рассчитывает 3д модель.
Считает долго. Есть бесплатная слегка обрезанная версия. Что-то получается, но я глубоко в тему пока не влезал.
Пробовал программу 3DF+Zephyr.
Требует несколько фотографий с разных сторон, цепляется за текстуру поверхности и рассчитывает 3д модель.
Считает долго. Есть бесплатная слегка обрезанная версия. Что-то получается, но я глубоко в тему пока не влезал.
Должно быть у других людей слишком длинная жизнь, если они могут себе позволить фрезеровать на скорости меньше 10 м/мин...
-
- Мастер
- Сообщения: 6140
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Нет, ничего приличного "для вилок" вы по фотографиям не получите.
Ну или этих фотографий надо будет много десятков, а может и сотен штук.
Чтобы человек смог нарисовать вилку адекватно - нужны десятки фото, чтобы конкретная вилка получилась, а не отсебятина на тему вилки.
В некоторых "темах" чуть проще, т.к. например в ювелирке есть типовые решения, которые можно увидеть (часть их) и понять как именно сделано. Но и там "всё непросто".
Если нужна очень приблизительная модель, тогда да, а вот то, что на фото... уверен, что не каждый сканер даст приличный результат,
нужны какие-то решения "для мелочевки".
Ну или этих фотографий надо будет много десятков, а может и сотен штук.
Чтобы человек смог нарисовать вилку адекватно - нужны десятки фото, чтобы конкретная вилка получилась, а не отсебятина на тему вилки.
В некоторых "темах" чуть проще, т.к. например в ювелирке есть типовые решения, которые можно увидеть (часть их) и понять как именно сделано. Но и там "всё непросто".
Если нужна очень приблизительная модель, тогда да, а вот то, что на фото... уверен, что не каждый сканер даст приличный результат,
нужны какие-то решения "для мелочевки".
-
- Мастер
- Сообщения: 6140
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
ЗЫ. Очевидный способ использования "графики" - использовать ее как "графику", а не как 3д модели. Гравируйте линиями по поверхностям...
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Все тот же image-to-gcode. Вижу в коде место, где формируется вывод текста в файл по дугам, G2 & G3. Но где, какие именно строки, формируют G1?! - кто в теме, пожалуйста ткните носом? Поиск по файлу G1 ничего не выдает, а ведь в рождаемом файле "есть такая буква". Зачем? - реализованный алгоритм формирования точек разумен, не создает сплошное полотно, фактически речь идет о создании скриптом набора сечений предмета. Хочу заставить скрипт писать в каждую строку полные координаты ХYZ, тогда это будет уже набор точек, который смогу использовать как mesh.
Еще есть вариант - inkscape многослойное преобразование графики в вектор. Тоже создает набор сечений. Поскольку яркость от 0 до 255 = сечений счетное множество. Это богатство может быть импортировано во FreeCAD, там можно прибить лишние (сложенные, дублирующие) контуры, сгруппировать по слоям и деталям фигуры, преобразовать каждый контур сечения в эскиз (с возможность редактирования) и через набор эскизов сделать тело.
Еще есть вариант - inkscape многослойное преобразование графики в вектор. Тоже создает набор сечений. Поскольку яркость от 0 до 255 = сечений счетное множество. Это богатство может быть импортировано во FreeCAD, там можно прибить лишние (сложенные, дублирующие) контуры, сгруппировать по слоям и деталям фигуры, преобразовать каждый контур сечения в эскиз (с возможность редактирования) и через набор эскизов сделать тело.
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Упомянутая программа https://lite.duckduckgo.com/lite/?q=3DF+ZephyrЛеонид Владимирович писал(а): ↑ Модель по картинке - это "фотограмметрия" называется.
Фотограмметрия в Питоне на Гитхабе https://github.com/search?l=Python&q=Ph ... positories
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Наглядная демонстрация вредности использования "фрэймворков" и программ 3-д моделирования. Слева - фотография оригинала, Нанси, музей Леколь, справа - цельнотянутая 3-д модель, почерпнутая viewtopic.php?p=635425#p635425
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Кто что нового по теме видел, читал, пробовал за прошедшие два года?
-
- Мастер
- Сообщения: 907
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
нейросети не умеют такого сейчас?
-
- Новичок
- Сообщения: 11
- Зарегистрирован: 27 окт 2024, 22:21
- Репутация: 0
- Настоящее имя: Dmitry
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Здравствовать !
Казалось-бы простейшая геометрия.
Подскажите, как сделать G-код, чтобы фреза шла вдоль вот такой траектории.
Казалось-бы простейшая геометрия.
Подскажите, как сделать G-код, чтобы фреза шла вдоль вот такой траектории.
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Геометрия совсем не простейшая. Способов, навскидку, не один.
1. в CAD создать модель и по ней gcode. Сумеете создать модель с этой "простейшей" геометрией = получите g-code.
2. взять CAD, в нем создать эскиз, и отрисовать эту пирамиду как набор дуг, соединенных между собой касательными. У дуг есть радиус, точка начала сегмента и точка конца (она же - точка начала следующей). Для создания g-code этого достаточно - по g0 едем в начальную точку на начальной высоте. Затем командной G2 едете в конечную точку сегмента на высоту конца сегмента. Этот метод будет проще, чем п. 1.
3. "токарная" версия
Другое дело, что высота этой детали, скорее всего, выше 50мм и "любительским" станком будет сложно обойтись.
1. в CAD создать модель и по ней gcode. Сумеете создать модель с этой "простейшей" геометрией = получите g-code.
2. взять CAD, в нем создать эскиз, и отрисовать эту пирамиду как набор дуг, соединенных между собой касательными. У дуг есть радиус, точка начала сегмента и точка конца (она же - точка начала следующей). Для создания g-code этого достаточно - по g0 едем в начальную точку на начальной высоте. Затем командной G2 едете в конечную точку сегмента на высоту конца сегмента. Этот метод будет проще, чем п. 1.
3. "токарная" версия
Другое дело, что высота этой детали, скорее всего, выше 50мм и "любительским" станком будет сложно обойтись.
-
- Новичок
- Сообщения: 11
- Зарегистрирован: 27 окт 2024, 22:21
- Репутация: 0
- Настоящее имя: Dmitry
- Контактная информация:
Re: Имеем картинку и цель - получить g-code. Какие способы и методы мы знаем?
Как сделать правильную круговую интерполяцию чтобы правильно написать команду G2
там ведь кроме начальной и конечной координаты должны быть ещё и координаты центра.
Как их найти ?
И я что-то не нашел описания G2 для случая с тремя координатами.
это Вы хорошо подметили