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

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

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

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

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

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

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

Сообщение Nick »

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (174994 просмотра) <a class='original' href='./download/file.php?id=348&sid=8e699cb486dc1fa90ddb0e17eab4246c&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
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

..... осталось почистить от пары тысяч багов и плагин готов... :D
Вложения
extensions.tar.gz
(8.99 КБ) 1319 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Пофикшены некоторые баги...
Теперь нормально оффсетит составные кривые.
Вложения
extensions.tar.gz
(9.25 КБ) 1259 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

925 строк кода... И неизвестно сколько еще багов осталось, но известно точно, что с каждым днем их становится все меньше...
Скоро повешу новые скриншоты.
Вложения
extensions.tar.gz
(9.34 КБ) 1345 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

...
Вложения
extensions.tar.gz
(9.38 КБ) 1278 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Выходим на финишную прямую...
Вложения
extensions.tar.gz
(9.77 КБ) 1298 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Резюмирую, что сейчас готово:
  • аппроксимация кривых биарками
  • реализована функция оффсета для обработки площади кривой
  • возможность оффсета кривой до генерации g-кода
  • задание многопроходной обработки
  • задание изменения масштаба
  • задание единиц измерения
  • возможность добавления собственных заголовков и окончаний сгенерированного кода
Todo: Multiple bug fix.
Несколько примеров:
Разными цветами отмечены:
  • красным - прямые линии
  • синим и зеленым - разные части биарок.
  • более тонкие - линии офсета
rect15935.png (6544 просмотра) <a class='original' href='./download/file.php?id=81&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (206.46 КБ)</a>
rect115935.png (6544 просмотра) <a class='original' href='./download/file.php?id=82&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (76.13 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

///
Вложения
extensions.tar.gz
(9.9 КБ) 1234 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Продолжение...
+ несколько скринов:
Тонкие линии - выработка площади.
Преобразование в G-code (6527 просмотров) <a class='original' href='./download/file.php?id=87&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (142.52 КБ)</a>
Преобразование в G-code
Convert to G-code (6527 просмотров) <a class='original' href='./download/file.php?id=88&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (221.39 КБ)</a>
Convert to G-code
Преобразование в G-code (6527 просмотров) <a class='original' href='./download/file.php?id=86&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (31.93 КБ)</a>
Преобразование в G-code
Вложения
extensions.tar.gz
(9.94 КБ) 1304 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

...
+ скрин
Save to Gcode (6519 просмотров) <a class='original' href='./download/file.php?id=89&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (194.62 КБ)</a>
Save to Gcode
Вложения
extensions.tar.gz
(10.05 КБ) 1320 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Нужно определиться с интерфейсом...
Есть три функции:

Кривая -> в G-code,
Площадь кривой -> в G-code, с использованием собственного оффсета. (Достаточно медленный ( O(n*n) где n=количество узлов ) и несколько глючный метод)
Подготовить кривые для обработки площади используя оффсет inkscape... Кривые потом можно редактировать и преобразовать в Gкод с помощью первой функции.

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

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

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Итак, прошло не мало времени...
Что у на с появилось нового:
Обработка площади при помощи оффсета инкскейп. Делается в два этапа, немного глючит, но есть возможность корректировки.

Вот пример работы с большим контуром из 521 узла, обработка всей площади осуществляется за 26 циклов.
(Размер готовой формы 350 * 400 мм, диаметр фрезы 2 мм. )
Время обсчета оффсета 5-10 сек (P4 D 2.8 (правда на нем еще крутится LTSP сервер на момент расчета было 3 активных терминала) )
Время конвертации в Gcode 5-10 сек.
Время указанно с учетом времени отрисовки inkscape.
Вот результат:
CAM конвертация в Gcode (6381 просмотр) <a class='original' href='./download/file.php?id=91&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (1.27 МБ)</a>
CAM конвертация в Gcode
К сожалению линии оффсета видны плохо, но они есть :).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Даааа, с интерфейсом надо что-то делать еще чуть-чуть и на экран не влезет...
Вложения
extensions.tar.gz
Gcode tools
(10.31 КБ) 1208 скачиваний
Интерфейс Gcode tools (6380 просмотров) <a class='original' href='./download/file.php?id=93&sid=8e699cb486dc1fa90ddb0e17eab4246c&mode=view' target=_blank>Загрузить оригинал (383.86 КБ)</a>
Интерфейс Gcode tools
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Some bug fix...
Tested export to Gcode...
Zerro radius arc when radius < 0.1 fixed.
Вложения
extensions.tar.gz
(10.38 КБ) 1200 скачиваний
gerb.svg.tar.gz
(87.47 КБ) 1262 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

...
Вложения
extensions.tar.gz
(10.54 КБ) 1245 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

В вывод Gcode добавленны переменные, и теперь все перемещения выглядят как G01 X[10*#5+#8] Y[10*#6+#9] Z[10*#7+#10]. Таким образом вначале программы можно легко задавать отступы и масштаб.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Ну вот и подошло время первого релиза!
Gcode Tools v 1.0.0
extensions.tar.gz
(10.91 КБ) 1312 скачиваний
В первую версию версию:
  • Конвертация кривой в Gcode.
  • Конвертация площади кривой в Gcode для небольшого числа узлов.
  • Подготовка площади кривой для конвертации в Gcode, методами Inkscape.
  • Сохранение готового Gкода в файл с использованием задаваемых заголовка и окончания.
  • Масштабирование и сдвиг готового кода.
  • Пошаговая многозаходная обработка.
  • ...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Исправлены следующие ошибки:

Не правильное задание стиля: вместо строки отправлялся инт

В Inkscape ver 0.46, Ubuntu Linux Intrepid, Gnome скрипт выдавал ошибку:

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

Traceback (most recent call last):
File "/usr/share/inkscape/extensions/gcode_tools.py", line 36, in <module>
'biarc0': simplestyle.formatStyle({ 'stroke': '#88f', 'fill': 'none', 'stroke-width':1 }),
File "/usr/share/inkscape/extensions/simplestyle.py", line 178, in formatStyle
return ";".join([":".join(i) for i in a.iteritems()])
TypeError: sequence item 1: expected string, int found
Исправлен мой плохой английский:
"cicles" теперь "cycles" :).

Последняя версия в шапке.

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

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Добавлена новая опция: Выводить Жкод без параметризации (в теле Gкода не будут вводиться параметры для вычисления отступов и маштабирования, все вычисления будут делаться средствами плагина). Опция доступна на вкладке Params.

Опция добавлена по просьбам пользователей/разработчиков Gigamech. Опция позволяет использовать полученный Gкод с программными контроллерами не поддерживающими задание параметров в теле управляющей программы. Применение этой опции ограничит возможности дальнейшего ручного изменения готового Gкода управляющей программы.

Шапка обновлена.
Вложения
extensions.tar.gz
(11.25 КБ) 1222 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Начал разработку новой функции: Loft.
Суть: протяжка профилей. Есть набор профилей детали по ним создаем модель для обработки.

Версия пока не рабочая.
Вложения
extensions.tar.gz
(12.2 КБ) 1268 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Исправлена ошибка с генерацией непараметрического Gкода. Из-за погрешностей в вычислениях иногда радиус начала и конца дуги не совпадают (разница может быть 0.01мм и менее но это вызывает ошибку) в этих случаях конструкция XY IJ заменяется на XY R, где R усредненное значение радиусов начала и конца дуги.
В строке 701 "r*self.options.Xscale" нужно заменить на "(r*self.options.Xscale)".

Шапка обновлена. Последняя версия в шапке!
Ответить

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