Разработка Gcodetools - плагин Inkscape для экспорта в Gкод

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Следующее направление разработки

Можно выбрать до 5 вариантов ответа

 
 
Результаты голосования

Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Разработка Gcodetools - плагин Inkscape для экспорта в Gкод

Сообщение Nick »

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (146460 просмотров) <a class='original' href='./download/file.php?id=348&sid=0ccf1f5860bfc544d851a1a9a05af98e&mode=view' target=_blank>Загрузить оригинал (31.64 КБ)</a>
Эта ветка посвящена разработке Gcodetools, плагина для векторного редактора Inkscape, позволяющего конвертировать кривые из Inkscape в Gкод, используя круговую и линейную интерполяцию.

Описание работы, установка, помошь и уроки по плагину можно найти в теме: Gcodetools - plug-in Inkscape для экспорта в Gcode

На данный момент ведется работа над Gcodetools 1.7

Что мы хотим увидеть в новой версии:
  • Улучшение расширения для плазменной резки
  • Добавление дополнительных опций экспорта:
  • Улучшение функции обработки площади
  • Угол заглубления
  • Расширение для сверловки

Требуются

  • Тестеры
  • Разработчики
  • Помощь в технических аспектах по работе станков и обработке материалов
  • Новые идеи

Последняя версия

Исходный код находится на launchpad.net. Получить последнюю версию при помощи bazaar можно так:

Код: Выделить всё

bzr branch lp:gcodetools
Последнюю версию можно загрузить через web-интерфейс: http://bazaar.launchpad.net/~gcodetools ... lope/files

Установка

1. Загрузите последнюю ревизию, из указанных выше мест.
2. Выполните "python create_inx.py" в директории с загруженными файлами.
3. Скопируйте все созданные файлы с расширением *.inx и файл gcodetools-dev.py в каталог:
Linux: /usr/share/inkscape/extensions/ и перезапустите inkscape
Windows: Program Files\Inkscape\share\extensions\
4. Перезапустите Inkscape

Последняя версия может быть не рабочей! Для получения стабильной рабочей версии зайдите сюда Gcodetools - plug-in Inkscape для экспорта в Gcode или загрузите предыдущие ревизии.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

А ты пробовал Area и Fill area?

В принципе они работают сносно. Area заполняет площадь динамическими втяжками, а fill area - зигзагом.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение torvn77 »

У вас вроде как написано что-то вроде того,что "Динамическая втяжка" пока ещё нестабильная функция Inscape и при её использований могут возникнуть глюки".
А Другая вкладка "прошивает" контур,а не огибает его.
Сейчас я хочу спать,а по посже напишу как я работаю.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

torvn77 писал(а):У вас вроде как написано что-то вроде того,что "Динамическая втяжка" пока ещё нестабильная функция Inscape и при её использований могут возникнуть глюки".
Так оно и есть. как мне иногда кажется без глюков офсетов не бывает....
torvn77 писал(а):А Другая вкладка "прошивает" контур,а не огибает его.
В каком смысле? :)
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение torvn77 »

Поизучал Area и появились у меня вот какие мысли:
1)В файле
Test_0001.ngc
(20.33 КБ) 920 скачиваний
я привёл пример того,что я назвал прошиванием не фрезеруемой поверхности вкладкой Fill Area.
Если его открыть в просмотрщике и проследить процесс выполнения,то можно увидеть как он несколько раз поднимает портал,прыгая через внутренний прямоугольник.
Было бы лучше если бы путь инструмента на него наматывался вплоть до внешнего прямоугольника.
Если учесть,что область может быть не прямоугольной,а кривой то ползущая от или к центру черепашка мне видится более хорошим решением.
2)Хотя очевидно,что у инструмента есть диаметр,плугин проводит путь непосредственно по границе области.
Если сделать макет буквы А применить Path to Gcode и у полученного пути задать соответствующею ширину обводки,
то можно увидеть.что буква А испорчена:
Test _2.svg
(18.05 КБ) 1027 скачиваний
Было бы хорошо сделать параметр ограничения максимального приближения пути фрезеровки к границе фрезируемой области,
а контуры,не удовлетворяющие этому параметру либо удалять,либо изменять в ручном или автоматическом режиме.
3)В мануальнике не объяснён инструмент Cone cutter.
Если я правильно понимаю.то это конический гравёр.
Тогда почему в опроснике для него,который генерирует Tools Library нет такого параметра как его пятка и угол?
Или параметр diametr в данном случае и есть пятка?
4)Надо бы сделать для конусного гравёра отдельный мастер,который будет работать поверх вкладок Area и Path ...
На входе но получает контур детали,глубину резки,шаг заглубления,угол,пятку и max диаметр гравёра.
В первую очередь он рассчитывает число шагов заглубления как отношение разницы между верхней и нижней границей области фрезировки к шагу заглубления
и для каждого шага создаёт свой отдельный слой.
На основе геометрий гравёра (угол,пятка и max диаметр) гравёра рассчитывает для каждого слоя для каждого слоя максимальное приближение контура пути инструмента к контуру детали
и скармливает это Area вместе с названием слоя с контуром заготовки и название слоя куда Area должна вывести результат.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

torvn77 писал(а):2)Хотя очевидно,что у инструмента есть диаметр,плугин проводит путь непосредственно по границе области.Если сделать макет буквы А применить Path to Gcode и у полученного пути задать соответствующею ширину обводки,то можно увидеть.что буква А испорчена:
Для того, чтобы буква стала нормальной. надо помимо площади контура пройтись по самому контуру.
torvn77 писал(а):3)В мануальнике не объяснён инструмент Cone cutter.Если я правильно понимаю.то это конический гравёр.Тогда почему в опроснике для него,который генерирует Tools Library нет такого параметра как его пятка и угол?Или параметр diametr в данном случае и есть пятка?
Форма используется только для расширения engraving, и форма задается формулой.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение torvn77 »

Если посмотреть вложенный макет,то можно увидеть,что фреза наезжает на букву.
Это надо исправлять не проходом по контуру,а нанесением каким-нибудь способом материала обратно.
--------
То-есть с точки зрения плугина конический гравёр это целиндрическая фреза некоторого диаметра?
Можно и так,но что бы не запутаться в макете лучше их разделять хотя бы названиями.
(Макет может понадобится через год,когда всё забыто,или его может смотреть человек,который его не делал)
---------
А как вы относитесь к остальным остальным предложениям?
---------
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

torvn77 писал(а):Если посмотреть вложенный макет,то можно увидеть,что фреза наезжает на букву.Это надо исправлять не проходом по контуру,а нанесением каким-нибудь способом материала обратно.
Или предварительно сделать оффсет на радиус инструмента. :)
torvn77 писал(а):То-есть с точки зрения плугина конический гравёр это целиндрическая фреза некоторого диаметра?Можно и так,но что бы не запутаться в макете лучше их разделять хотя бы названиями.
Скорее наоборот. цилиндрический это конический с постоянным радиусом.
В каком смысле их разделить?
Внутри или "снаружи" плагина?
torvn77 писал(а):А как вы относитесь к остальным остальным предложениям?
Я-то не против :). Но к сожалению пока нет свободного времени.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение torvn77 »

Поработав в арткаме я нащёл там опцию "только отстачное фрезерование".
Эта опция заставляет при многоинструментальной обработке избегать обработки участков с уже снятым материалом,что существенно ускоряет обработку детали на станке.
Ограничивать пространство обработки в ручную труд непроизводительный,при выполнений которого легко допустить ощибку.
С моей точки зрения это делает нерентабельным использование вашей программы для производства полиграфических клише.

С другой стороны действия при огранечений области обработки стереотипны.
Я думаю,они должны легко автоматизироватся,если сделать служебный слой учитывающий то,какой материал был снят ранее.
Если это сделать,то применительно к моей задаче можно будет начать сравнивать ваш плугин и арткам.
Поэтому я предлагаю сконцентрировать усилия на многоинструментальной обработке и улучшений обработки площади,так как эти направления получаются взаимосвязаны.

П.С. Голоса от [s]зарегистрированных[/s] залогиненных и анонимных пользователей надо считать отдельно,так как как анонимно я проголосовал уже раз шесть с самыми разными опциями.
(Сейчас я просто не заметил то,что не залогинен)
В общем,статистика голосования без этого разделения получается не достоверной.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

Это не такая простая задача - сложность надо делать булевы операции с контурами - не просто. Но всегда можно сделать родными методами inkscape.
Сергей_К
Новичок
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Сергей_К »

Уважаемый Nick!
Огромное спасибо Вам за разработку плагина!
В поисках генератора G-кода для лазерного станка (пока это просто выжигалка с инфракрасным лазером, но не все сразу) нашел сначала Ваш плагин, а затем THLaserPlugin (http://wiki.thinkhaus.org/index.php?tit ... ser_Plugin), который основан на Вашем коде. Кода там меньше и я решил допилить его под себя.
И столкнулся с проблемой: если запустить программу inkscape 0.48.4 (WinXP и Win7 64), нарисовать контур и изменить размеры листа в свойствах документа (я делал 150*150 px), то матрица трансформации получаемая командами:

Код: Выделить всё

trans = layer.get('transform', None)
trans = simpletransform.parseTransform(trans)
выглядит следующим образом:
[[1.0, 0.0, 0.0], [0.0, 1.0, -902.36217999999997]]
Причем число -902 меняется.
При этом плагин генерит правильный G-код, но отрисовка (draw curve) получившегося контура сползает выше.
Если удалить первоначальный слой и создать новый, то все работает на ура.
Может Вы в курсе: это баг inkscape или что-то не так с кодом?
Код плагина прикладываю на всякий случай. Получение информации о трансформации начинается со строки 515
extensions.zip
Не ругайте сильно, код не мой, но поковырялся в нем))) С языком python знаком две недели)))
(8.43 КБ) 523 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

При отрисовке надо делать обратный трансформ... может они его не сделали, или взяли тот код, в котором обратный трансформ не был сделан.

--------

Да, у них достаточно старая версия, там Gcodetools назывался еще Gcode_tools :).

ЗЫ а что этот плагин умеет дополнительно, он может площадь выжигать?
ЗЫЫЫ вот эта строчка https://github.com/parogers/thlaser/blo ... ser.py#L86

Код: Выделить всё

_ = inkex._
меня радует! Похоже скоро можно будет переводить плагины без встраивания в код inkscape!
Сергей_К
Новичок
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Сергей_К »

Плагин умеет выжигать только контуры.
Зато он умеет встраивать в код разные скорости подачи на разных слоях через имя слоя, а я уже добавил и изменение мощности лазера (через ШИМ). В Gcodetools я такого не нашел... вроде...
Nick писал(а):вот эта строчка
_ = inkex._
меня радует!
Я так понял что это просто замена по тексту
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

Сергей_К писал(а):Зато он умеет встраивать в код разные скорости подачи на разных слоях через имя слоя, а я уже добавил и изменение мощности лазера (через ШИМ). В Gcodetools я такого не нашел... вроде...
Можно точно также, в каждый слой пихаем свой инструмент (или через меню, или просто копируем созданный инструмент в нужные слои) и в нем задаем Feed. По времени на 10 секунд больше.
Сергей_К писал(а):Я так понял что это просто замена по тексту
обычно через _ обозначают gettext - а это не просто замена - это переводы и локализация, с кучей хитрых возможностей.
Сергей_К
Новичок
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Сергей_К »

Nick писал(а):обычно через _ обозначают gettext - а это не просто замена - это переводы и локализация, с кучей хитрых возможностей.
А я просто заменил _ на inkex._
Не везде конечно, а в строках типа

Код: Выделить всё

inkex.errormsg(_("Can not write to specified file!"))
а, строку

Код: Выделить всё

_ = inkex._
удалил. Все работает. Ну кроме непонятки с матрицей.
Аватара пользователя
Nick
Мастер
Сообщения: 22767
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1719
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

Должно и так работать :).

С матрицей, надо править код... Искать место отрисовки и туда добавлять обратное преобразование...
Вот куда-то сюда наверное: https://github.com/parogers/thlaser/blo ... er.py#L485
Только помнится мне, это все делалось не так просто - там может быть несколько вложенных групп со своими преобразованиями, нужно бежать от корня документа и собирать итоговое преобразование...
Сергей_К
Новичок
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Сергей_К »

Nick, спасибо, разобрался. Только не стал делать обратное преобразование, а создал два списка контуров. Один трансформированный, врой нет. Трансформированный список контуров - в процедуру генерации g-кода, а нетрансформированный - в процедуру которая на экране рисует)))
karboskitos
Новичок
Сообщения: 2
Зарегистрирован: 18 май 2020, 00:16
Репутация: 0
Настоящее имя: Karbos Kartos
Контактная информация:

Re: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение karboskitos »

Can Any one make a video of how to intall gcodetools dev for Graffiti because I did everything and it didn't work
Ответить

Вернуться в «LinuxCNC»