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

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

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

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

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

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

Сообщение Nick » 07 дек 2009, 11:39

Разработка Gcodetools


Разработка Gcodetools - плагин Inkscape для экспорта в Gкод Screenshot-output.ngc - AXIS-4.png

Эта ветка посвящена разработке 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.team/gcodetools/develope/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
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение Nick » 17 окт 2012, 11:44

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

В принципе они работают сносно. Area заполняет площадь динамическими втяжками, а fill area - зигзагом.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 17 окт 2012, 22:29

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

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

Сообщение Nick » 17 окт 2012, 23:16

torvn77 писал(а):У вас вроде как написано что-то вроде того,что "Динамическая втяжка" пока ещё нестабильная функция Inscape и при её использований могут возникнуть глюки".

Так оно и есть. как мне иногда кажется без глюков офсетов не бывает....
torvn77 писал(а):А Другая вкладка "прошивает" контур,а не огибает его.

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

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

Сообщение torvn77 » 21 окт 2012, 01:40

Поизучал Area и появились у меня вот какие мысли:
1)В файле
Test_0001.ngc
(20.33 Кб) Скачиваний: 799
я привёл пример того,что я назвал прошиванием не фрезеруемой поверхности вкладкой Fill Area.
Если его открыть в просмотрщике и проследить процесс выполнения,то можно увидеть как он несколько раз поднимает портал,прыгая через внутренний прямоугольник.
Было бы лучше если бы путь инструмента на него наматывался вплоть до внешнего прямоугольника.
Если учесть,что область может быть не прямоугольной,а кривой то ползущая от или к центру черепашка мне видится более хорошим решением.
2)Хотя очевидно,что у инструмента есть диаметр,плугин проводит путь непосредственно по границе области.
Если сделать макет буквы А применить Path to Gcode и у полученного пути задать соответствующею ширину обводки,
то можно увидеть.что буква А испорчена:
Test _2.svg
(18.05 Кб) Скачиваний: 910

Было бы хорошо сделать параметр ограничения максимального приближения пути фрезеровки к границе фрезируемой области,
а контуры,не удовлетворяющие этому параметру либо удалять,либо изменять в ручном или автоматическом режиме.
3)В мануальнике не объяснён инструмент Cone cutter.
Если я правильно понимаю.то это конический гравёр.
Тогда почему в опроснике для него,который генерирует Tools Library нет такого параметра как его пятка и угол?
Или параметр diametr в данном случае и есть пятка?
4)Надо бы сделать для конусного гравёра отдельный мастер,который будет работать поверх вкладок Area и Path ...
На входе но получает контур детали,глубину резки,шаг заглубления,угол,пятку и max диаметр гравёра.
В первую очередь он рассчитывает число шагов заглубления как отношение разницы между верхней и нижней границей области фрезировки к шагу заглубления
и для каждого шага создаёт свой отдельный слой.
На основе геометрий гравёра (угол,пятка и max диаметр) гравёра рассчитывает для каждого слоя для каждого слоя максимальное приближение контура пути инструмента к контуру детали
и скармливает это Area вместе с названием слоя с контуром заготовки и название слоя куда Area должна вывести результат.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 21 окт 2012, 12:46

torvn77 писал(а):2)Хотя очевидно,что у инструмента есть диаметр,плугин проводит путь непосредственно по границе области.Если сделать макет буквы А применить Path to Gcode и у полученного пути задать соответствующею ширину обводки,то можно увидеть.что буква А испорчена:

Для того, чтобы буква стала нормальной. надо помимо площади контура пройтись по самому контуру.

torvn77 писал(а):3)В мануальнике не объяснён инструмент Cone cutter.Если я правильно понимаю.то это конический гравёр.Тогда почему в опроснике для него,который генерирует Tools Library нет такого параметра как его пятка и угол?Или параметр diametr в данном случае и есть пятка?

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

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

Сообщение torvn77 » 21 окт 2012, 13:40

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

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

Сообщение Nick » 21 окт 2012, 17:43

torvn77 писал(а):Если посмотреть вложенный макет,то можно увидеть,что фреза наезжает на букву.Это надо исправлять не проходом по контуру,а нанесением каким-нибудь способом материала обратно.

Или предварительно сделать оффсет на радиус инструмента. :)
torvn77 писал(а):То-есть с точки зрения плугина конический гравёр это целиндрическая фреза некоторого диаметра?Можно и так,но что бы не запутаться в макете лучше их разделять хотя бы названиями.

Скорее наоборот. цилиндрический это конический с постоянным радиусом.
В каком смысле их разделить?
Внутри или "снаружи" плагина?

torvn77 писал(а):А как вы относитесь к остальным остальным предложениям?

Я-то не против :). Но к сожалению пока нет свободного времени.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 06 дек 2012, 10:11

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

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

П.С. Голоса от [s]зарегистрированных[/s] залогиненных и анонимных пользователей надо считать отдельно,так как как анонимно я проголосовал уже раз шесть с самыми разными опциями.
(Сейчас я просто не заметил то,что не залогинен)
В общем,статистика голосования без этого разделения получается не достоверной.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 06 дек 2012, 19:06

Это не такая простая задача - сложность надо делать булевы операции с контурами - не просто. Но всегда можно сделать родными методами inkscape.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение Сергей_К » 13 ноя 2013, 13:21

Уважаемый Nick!
Огромное спасибо Вам за разработку плагина!
В поисках генератора G-кода для лазерного станка (пока это просто выжигалка с инфракрасным лазером, но не все сразу) нашел сначала Ваш плагин, а затем THLaserPlugin (http://wiki.thinkhaus.org/index.php?title=THLaser_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 Кб) Скачиваний: 397
Сергей_К
Новичок
 
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0

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

Сообщение Nick » 13 ноя 2013, 14:08

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

--------

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

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

меня радует! Похоже скоро можно будет переводить плагины без встраивания в код inkscape!
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение Сергей_К » 13 ноя 2013, 14:28

Плагин умеет выжигать только контуры.
Зато он умеет встраивать в код разные скорости подачи на разных слоях через имя слоя, а я уже добавил и изменение мощности лазера (через ШИМ). В Gcodetools я такого не нашел... вроде...

Nick писал(а):вот эта строчка
_ = inkex._
меня радует!


Я так понял что это просто замена по тексту
Сергей_К
Новичок
 
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0

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

Сообщение Nick » 13 ноя 2013, 16:19

Сергей_К писал(а):Зато он умеет встраивать в код разные скорости подачи на разных слоях через имя слоя, а я уже добавил и изменение мощности лазера (через ШИМ). В Gcodetools я такого не нашел... вроде...

Можно точно также, в каждый слой пихаем свой инструмент (или через меню, или просто копируем созданный инструмент в нужные слои) и в нем задаем Feed. По времени на 10 секунд больше.
Сергей_К писал(а):Я так понял что это просто замена по тексту

обычно через _ обозначают gettext - а это не просто замена - это переводы и локализация, с кучей хитрых возможностей.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение Сергей_К » 13 ноя 2013, 22:09

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

А я просто заменил _ на inkex._
Не везде конечно, а в строках типа
Код: Выделить всёРазвернуть
inkex.errormsg(_("Can not write to specified file!"))

а, строку
Код: Выделить всёРазвернуть
_ = inkex._

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

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

Сообщение Nick » 13 ноя 2013, 22:49

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

С матрицей, надо править код... Искать место отрисовки и туда добавлять обратное преобразование...
Вот куда-то сюда наверное: https://github.com/parogers/thlaser/blo ... er.py#L485
Только помнится мне, это все делалось не так просто - там может быть несколько вложенных групп со своими преобразованиями, нужно бежать от корня документа и собирать итоговое преобразование...
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение Сергей_К » 14 ноя 2013, 09:17

Спасибо, покопаюсь)
Сергей_К
Новичок
 
Сообщения: 34
Зарегистрирован: 04 сен 2013, 17:02
Репутация: 0

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

Сообщение Сергей_К » 15 ноя 2013, 12:02

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

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

Сообщение karboskitos » 18 май 2020, 04:13

Can Any one make a video of how to intall gcodetools dev for Graffiti because I did everything and it didn't work
karboskitos
Новичок
 
Сообщения: 2
Зарегистрирован: 18 май 2020, 00:16
Репутация: 0
Настоящее имя: Karbos Kartos

Пред.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: 1240, aftaev, andergrin, ANDRUXA_VAP, at90, AVK74, Андрей Г., Bender, Bing [Bot], Evgen24, Google [Bot], holopovvv, iMaks-RS, Kiriba, mikehv, Mr. Mass, nau, NickSon, PavelTch, pegas13, Portos, PRomanS, putnik, Sakhalin_Cat, seet46, serjmd, SNS, Spinnaker, tsurika, vitzin, Yandex [bot], шпиндель

Reputation System ©'