Страница 4 из 4

Image-to-gcode + решение для нежестких станков

Добавлено: 20 авг 2013, 00:14
Гармонист

Image-to-gcode + решение для нежестких станков

в продолжение этой темы

Кому леньки читать и вникать:тут назначени кратко - представлено на ВИДЕО, в картинках и даже прокоментировано

скачать и попробовать
старые версии (для просмотра содержимого нажмите на ссылку)
image-to-gcode v3.5.zip
(17.54 КБ) 1513 скачиваний
image-to-gcode v3.6.zip
исправил некоторые баги,
убрал режим 2.1. "Окантовка" т.к. он только мешает(его нужно кардинально переделать),
усовершенствовал режим 2.2. "Разница"(теперь дельта может быть <= 0)
(17.29 КБ) 1440 скачиваний
image-to-gcode v3.7.zip
исправил некоторые баги, очень сильно переделал, так что сейчас не могу всего припомнить ... одно из:
фреза теперь может подрезать края, но получается более плавный рисунок(см.пост о матрицах фрез ниже)
но главное это то что эта версия прошла рабочую обкатку (опять же -см.пост ниже)
(21.71 КБ) 1301 скачивание
image-to-gcode v3.8.6.zip
исправил некоторые баги, очень многое переделал - поэтому сменил версию на 8
Переименовал некоторые параметры чтобы было понятнее, вывел расчетные размеры в миллиметрах,...
теперь параметр 'Не обрезать углы' - не доступен и включен поумолчанию, "отвязал" режим 'Optimize path' от режима 'RMF',
объединил функции RMF и Mill_objectiv и весь их функционал в одну: теперь в режимах 'Row/Col objective' - работает сортировка и прочие плюшки...
реализовал возможность через параметр 'mill layer by layer' - настраивать последовательность обхода участков только слой за слоем(если ИСТИНА) или по ветвям деревьев(если ЛОЖЬ)
(24.97 КБ) 2909 скачиваний
image-to-gcode v3.8.7.zip
небольшие усовершенствования...
(25.35 КБ) 1431 скачивание
image-to-gcode v3.8.8.zip
исправил ошибку с параметром "Инвертировать"(при определенной комбинации других параметров) из-за которой не формировался g-код и вываливалось сообщение об ошибке в сформированном ж-коде...
(25.38 КБ) 1393 скачивания
image-to-gcode v3.8.9.zip
исправил некоторые ошибки, среди которых ошибка при шаге больше единицы в обычном режиме при особой комбинации других параметров...
доработал интерфейс - в частности сделал чтобы съем за проход не был 0 и не был более общей глубины если включен отступ или режим RMF или...
вобщем - работа над ошибками в версии 3.8.8
(для особо любознательных: распаковываете 2е версии и в терминале командой diff сравниваете 2 файла и читаете что изменилось...)
(25.48 КБ) 3549 скачиваний
как установить написано тут
Лицензия (для просмотра содержимого нажмите на ссылку)
image-to-gcode is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. image-to-gcode is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details. You should have
received a copy of the GNU General Public License along with image-to-gcode;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
В теории - любой станок жесткий и безлюфтовый только в какой то степени.
Поэтому эта тема посвящена всем станкам. ;)

Важно: на аналогичном форуме у станкостроителя с аналогичной проблемой недостаточной жесткости станка - было удачно опробовано решение: стачивается напильником боковые лезвия фрезы оставляя их только на конце фрезы около 2-3мм, чтобы при максимальном заглублении фреза НЕ ломалась(боковые лезвия хватают края, зарываются и фреза ломается).


ВНИМАНИЕ: механизм экспериментальный (инновационный :mrgreen: ) и еще допиливается :rasp: - вобщем - тебя предупредили... 8-)
Исправил некоторые ошибки(возможно добавил свои :monkey: ).

Если слишком долго работает - рецепт: в Ubuntu(старой, без Unity) - меню - Система - Администрирование - Системный монитор - Процессы - находим в списке image-to-gcode - жмем ПКМ - Изменить приоритет - ставим -10(пробовал -18 - все виснет). Скорость у меня возрастает примерно в 2 раза.
Принцип действия + теория: (для просмотра содержимого нажмите на ссылку)
В пределе есть 2е стратегии обработки(IRL они комбинируются):
1. Обработка кончиком фрезы
2. Обработка боковой частью фрезы
сравнительный анализ стратегий работы концом и боковой гранью фрезы (57891 просмотр) <a class='original' href='./download/file.php?id=17814&mode=view' target=_blank>Загрузить оригинал (168.77 КБ)</a>
сравнительный анализ стратегий работы концом и боковой гранью фрезы
картинку взял отсюда
brochure.pdf
Взято с www.freesteel.co.uk
Буду признателен если кто-то подскажет в каком ПО это реализовано
(4.22 МБ) 2037 скачиваний
Обработка боковушкой фрезы при глубоком рельефе - конечно же эффективнее чем кончиком,
т.к. поверхность задействованной площади боковушки, больше поверхности задействованной площади кончика фрезы.

Для нежестких(с небольшей жесткостью) станков - к сожалению обработка боковушкой не получится,
т.к. - опять же - из-за большей площади рабоче поверхности - больше силы трения, фреза больше зарывается в материал(особенно если она спиральная),... и как следствие необходима большая сила удерживающая фрезу в заданных координатах - что для нежестких станков - не возможно.

Но возможна обработка концом фрезы с послойным снятием материала.
Но этот метод менее эффективный т.к. на нижних слоях приходится проходить по тем же частях рельефа, которые уже сняли на предыдущих слоях - работа вхолостую!

Так вот чтобы оптимизировать процесс - убрав холостые проходы - я дописал механизм получения ж-кода,
которые эти места - просто пропускает.

Режим №1 - послойное снятие материала, чистовой фрезой, но с оптимизацией холостого хода предыдущих слоев.

посмотрать описание: (для просмотра содержимого нажмите на ссылку)
Активируется флагом "Optimize roughing".
Примечание: этот режим №1 я разрабатывал как основа для 2го режима - поэтому если вы его реально используете - отпишитесь.
image-to-gcode оптимизированный режим - общий вид (57891 просмотр) <a class='original' href='./download/file.php?id=17818&mode=view' target=_blank>Загрузить оригинал (166.31 КБ)</a>
image-to-gcode оптимизированный режим - общий вид
Отверстие в бублике, более редкие линии - не важно, инновация заключается не в этом.
На следующем слайде - послойно и очень наглядно видно а чем заключается оптимизация
image-to-gcode сравнение обычного режима и оптимизированного:<br />слева - обычный, справа - оптимизированный (57891 просмотр) <a class='original' href='./download/file.php?id=17816&mode=view' target=_blank>Загрузить оригинал (968.54 КБ)</a>
image-to-gcode сравнение обычного режима и оптимизированного:
слева - обычный, справа - оптимизированный
Обратите внимание, что на 2м и 3м слое фреза не проходит там где уже прошла на предыдущих слоях!

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


Оптимизированный ж-код с установленным "Roughing is completed".
image-to-gcode оптимизированный режим + флаг  'Roughing is completed' - общий вид (57891 просмотр) <a class='original' href='./download/file.php?id=17819&mode=view' target=_blank>Загрузить оригинал (155.63 КБ)</a>
image-to-gcode оптимизированный режим + флаг 'Roughing is completed' - общий вид
image-to-gcode назначение флага 'Roughing is completed' (57891 просмотр) <a class='original' href='./download/file.php?id=17817&mode=view' target=_blank>Загрузить оригинал (885.5 КБ)</a>
image-to-gcode назначение флага 'Roughing is completed'

Режим №2 - два в одном: разница между черновой фрезой и чистовой + окантовка.


посмотреть описание: (для просмотра содержимого нажмите на ссылку)
Активируется флагом "Roughing mode minus finishing mode" и параметрами: "min delta rf(units)", "отступ грубого прохода", "съем за проход", "Roughing stepover (pixels)", "Roughing tool Diametr (unts)", "Roughing tool Type", "Roughing tool Diameter 2(units)", "Roughing Angle of tool diametr 2".

Примечание: при большей картинке и большей фрезе - обработка может занять слишком большее время.(Если есть идеи как оптимизировать - я готов выслушать).
Описание:

метод 2.1. "окантовка" этот метод вычисляет места где чистовая фреза при прохождении по краям высота рельефа выше заданной. Другими словами вычисляются границы рельефа, причем крутизна подьема рельефа выше заданной. Т.е. если у тебя плавный рельеф без резких переходов, то этот режим вообще ж-код не создаст.
Для этого режима результаты чернового прохода так же учитываются.
картинку в g-код окантовка.png (57891 просмотр) <a class='original' href='./download/file.php?id=17820&mode=view' target=_blank>Загрузить оригинал (194.43 КБ)</a>
картинку в g-код режим 'окантовка'.png (57891 просмотр) <a class='original' href='./download/file.php?id=17824&mode=view' target=_blank>Загрузить оригинал (27.19 КБ)</a>
метод 2.2. - собственно "гвоздь программы" - режим "разницы RMF"
- черновая фреза не войдет в узкие и глубокие места из-за своей толщины, а чистовая в этих местах может поломаться(я 4шт сломал) из-за того что много не снятого материала и большое заглубление.
Так вот этот механизм - вычисляет все места где черновая фреза оставила материал более заданной глубины и только по этим местам! делает ж-код.
картинку в g-код 'разница'.png (57891 просмотр) <a class='original' href='./download/file.php?id=17821&mode=view' target=_blank>Загрузить оригинал (124.74 КБ)</a>
картинку в g-код режим 'разница'.png (57891 просмотр) <a class='original' href='./download/file.php?id=17823&mode=view' target=_blank>Загрузить оригинал (203.82 КБ)</a>
Image-to-gcode режим Roughing mode minus Finishing mode (57891 просмотр) <a class='original' href='./download/file.php?id=17827&mode=view' target=_blank>Загрузить оригинал (279.18 КБ)</a>
Image-to-gcode режим Roughing mode minus Finishing mode
Image-to-gcode режим Roughing mode minus Finishing mode (57883 просмотра) <a class='original' href='./download/file.php?id=17842&mode=view' target=_blank>Загрузить оригинал (89.5 КБ)</a>
Image-to-gcode режим Roughing mode minus Finishing mode
Примечание: режим №2 - делает сразу двумя методами и 2.1. и 2.2.
Включить только 2.1. или только 2.2. - интерактивно нельзя.
logo cnc-club.ru.png
logo cnc-club.ru.png (2.77 КБ) 57891 просмотр
logo cnc-club.ru окантовка + разница RMF.png (57891 просмотр) <a class='original' href='./download/file.php?id=17822&mode=view' target=_blank>Загрузить оригинал (112.16 КБ)</a>
image2gkode logo cnc-club.ru режим разницы RmF.png (57891 просмотр) <a class='original' href='./download/file.php?id=17825&mode=view' target=_blank>Загрузить оригинал (152.68 КБ)</a>
Назначение режима №2: Этот ж-код используется как промежуточный проход между черновой и чистовой обработкой - позволяющий сделать отступ между требуемым и текущим рельефом не более заданной величины. По сути "выравнивает отступ" или другими словами - дочищает места где черновая фреза не пролезла, чтоб при финишном режиме в них не сломалась фреза.
Как использовать: (для просмотра содержимого нажмите на ссылку)
1. - обрабатываем заготовку самой большой фрезой, послойно с минимальной глубиной слоя (0.5мм-3мм), с максимальным шагом равным 80%-99% диаметра фрезы. Отступ 1мм-3мм.
Цель: грубо снять максимальное количество материала, для облегчения работы следующего режима.

2. - обрабатываем заготовку средней фрезой
(придется подбирать чтобы она была не слишком большая и не слишком маленька)
(рекомендую: шаровую или прямую-диаметр 5мм, но можно конус со скруглением на конце диаметром 3мм-8мм), послойно с глубиной слоя 3мм-8мм, с шагом равным 30% диаметра фрезы.
Отступ минимальный = 30% от диаметра чистовой фрезы = ~0.5мм.
Цель: снять основную часть материала, оставить минимальный отступ.

3. - обрабатываем заготовку в этом режиме "разницы" между предыдущей фрезой с чистовой "фрезой со шлифовкой":
- выбираем шаблон сканирования: "Cols Object" или "Rows Object"
- ставим флаг "Roughing mode minus finishing mode"
- ставим "min delta rf(units)" - главный параметр - разница в миллиметрах между черновым и чистовым рельефами. Ставим шаг заглубления в миллиметрах(без него - нет смысла) "Съем за проход".
- задаем конфигурацию черновой фрезы(черновая фреза должна быть больше чистовой!)
- задаем параметры предыдущего чернового прохода и следубщего чистового

Цель: сделать равномерный отступ по всему рельефу не более заданного значения.
Я использую двухперую спиральную прямую со скругленным концом диаметром 1.5мм и высотой 12мм, с функцией шлифовки поверхности.

4. - далее - чистовой режим в один проход - без послойного заглубления! - этой же чистовой фрезой с минимальным шагом(0.2мм - 0.8мм).

5. Бывает 4х режимов достаточно. Кому не достаточно - можно 5й - "финишный" режим гравером со скругленным концом. Тогда на 4м этапе - нужно задать отступ.
У меня например после 4го режима - поверхность получается полированой, но рельеф немного смазаный. После гравера - появляется ворс который приходится удалять вручную, но рельеф становится более... "сочным".
А настолько мелкой фрезы с полировкой как гравер - еще не нашел.

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 11 дек 2018, 01:26
nebelnoir
selenur писал(а):
nebelnoir писал(а): Ок, спасибо, через пару дней попробую. Предлагаю удалить сообщения не относящиеся к теме))
Да потом можно будет перенести некоторые сообщения если что.....
Немного протестировал контроллер, и я был приятно удивлен, в плане качества сигнала, вот пример с тестовыми настройками, какой получается сигнал:
2018-12-05_170759.jpg
Есть. http://www.cnc-club.ru/forum/viewtopic. ... 76#p477776

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 08 мар 2020, 23:55
a321
Тем временем, с течением времени, что версия скрипта из шапки темы, что с http://robomechs.com/image-to-gcode/ для начала просто не хочет запускаться (питон повзрослел и на большинстве машинок есть одновременно версии 2.7.х и 3.х - для починки в первой строке надо дописать -
2.7
).

С гномом скрипт, модернизированный, справляется, но уже с картинками из http://robomechs.com/image-to-gcode/, и с моим, нет. Например, картинку -
zagagula.png (9693 просмотра) <a class='original' href='./download/file.php?id=177859&mode=view' target=_blank>Загрузить оригинал (607.83 КБ)</a>
скрипт разрывает поплам. Оригинальный же скрипт, идущий в комплекте LinuxCNC, справляется штатно (но также штатно не избегает обработки больших фоновых площадей).

А в это время немного повзрослевший FreeCad умеет нечто подобное - там можно загрузить дополнительный верстак Lithophane, который загружает картинку и делает из нее нечто объемное. Причем может сразу это сделать на круглом основании - см. картинку.
Инструмент (верстак) делался для 3-д принтеров, но и в наших целях годится. Настройка тонкости модели там же. А вот уже управляющую программу делать в верстаке Patch, где можно выбирать для создания программ не модель целиком, а отдельные грани (теоретизирую, поскольку это делается пока только в экспериментальной ветке, которую у себя снес).



Да, не мгновенно и прожорливо до памяти.

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 11 мар 2020, 23:43
a321
Редактировать свое же сообщение не дает, а жаль. Списался с автором Литофана, огорчил он меня - увидеть результат можно, а использовать - нет. В целях и смысле программы для создания управляющей программы. Потому вернулся к вопросу скрипта. Еще раз проверил работу модернизированных скриптов - ломаются, мою картинку превращают в кашу. А стандартный, из состава LinuxCNC, работает без ошибок.
Цели же скрипта, как минимум в части обрезки фона, достигаются достаточно просто (и, как минимум в моем случае, сокращают время исполнения программы раза в 3-4) -

0. при создании кода в скрипте ключевой параметр - направление сканирования = переменный, остальное - адаптивно, под потребности
Снимок экрана от 2020-03-11 23-33-26.png (9653 просмотра) <a class='original' href='./download/file.php?id=178102&mode=view' target=_blank>Загрузить оригинал (80.13 КБ)</a>
1. созданный код открываем в LinuxCNC - для проверки на ошибки и визуализации
2. этот же код открываем в текстовом редакторе
3. в LCNC увеличиваем и тыркаем мышью в тректории холостых ходов в сторону краев и находим там строку с командой, направляющие станок к границам. Что-то типа Y0.2827, или Y390.827. Автоазменой в тексте берем это в скобочки - ( Y0.2827), сохраняем и смотрим на результат в LCNC. По существу соотв. прибиваем воманды.
4. смотрим результат. Скорее всего в самом начале, строка 12-14, надо будет поправить команды перехода к началу и в самом конце - последние.

Т.е. вопросы полей решаются парой-тройкой автозамен и правкой вступления и заключения.

Посмотревши на результат может возникнуть желание попробовать и вариант вертикального шаблона сканирования.
В моем случае - две автозамены и одна ручная правка в строке 13 -
Снимок экрана от 2020-03-11 23-41-28.png (9653 просмотра) <a class='original' href='./download/file.php?id=178101&mode=view' target=_blank>Загрузить оригинал (51.27 КБ)</a>
Время исполнения снизилось в 3,3 раза.

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 17 мар 2020, 17:07
a321
Для тех, кто разбирался в теме вопрос. По итогам использования цикла программ - Инскейп + гимп + image-to-gcode + linuxCNC на мой взгляд очевиден вывод - Инскейп, как средство формирования градиента цвета, умеренно хорош, на четверочку. Но мировоззрение Инскейпа в части таблицы соответствия Мера черности\глубина явно не соответствует воззрению image-to-gcode. Явно у image-to-gcode зависимость линейная, а Инскейп рисует нелинейную. Отсюда вопрос - я в питоне свои силы еще не пробовал, но уже знаю, что править придется в области 777-804 строки. Скрипт выполняется не быстро и потому по-хорошему надо не каждый раз, для каждой точки поля, вычислять значение высоты (как функция от синуса), а сделать таблицу значений, всего 256 шт.

Я бы попробовал скорректировать функцию, но мне все с нуля (в питоне), а кто-то, возможно, уже там шарит.
Потому как результат чтения одной и той же картинки в том же Литофане FreeCad дает существенно лучший результат в плане рельефа, нежели image-to-gcode.

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 10 апр 2020, 10:34
a321
Я провел испытания (картина и так уже была ясна, но качественно) - в Инкскейпе нарисовал окружность и залил ее радиальным градиентом, скормил эту картинку скрипту и в результате в объеме получил чистой воды конус.
Скрипт создает массив заранее вычисленных значений Чернота\высота, 255 штук. Представляется разумным внедрить в него варианты sin, sin^^2, sin^^3, возможно было бы разумно создавать сразу все 4 варианта итогового файла, чтобы не ждать все разы выполнения.

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 06 июл 2021, 14:21
M_a_x
Гармонист писал(а): image-to-gcode v3.8.9.zip
Добрый день!
было бы хорошо знать какие модули и каких версий требуются для работы. Вот сейчас поменял скрипт на версию 3.8.9 и работать перестал - выдаёт при импорте в строке 39
ImportError: No module named numarray

посмотрел в пакеты - там python-numpy стоит, в версии 1:1.12.1-3
Это он виновен? Какой должен быть ?

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 19 май 2022, 12:17
a321
a321 писал(а): Скрипт создает массив заранее вычисленных значений Чернота\высота, 255 штук. Представляется разумным внедрить в него варианты sin, sin^^2, sin^^3, возможно было бы разумно создавать сразу все 4 варианта итогового файла, чтобы не ждать все разы выполнения.
Реализовано в viewtopic.php?p=635120#p635120

Re: Image-to-gcode + решение для нежестких станков

Добавлено: 12 окт 2023, 16:12
Anri
а зачем ускорение убрали в последней версии?!