Разработка 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 (181531 просмотр) <a class='original' href='./download/file.php?id=348&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 или загрузите предыдущие ревизии.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Добавлено сравнение работы алгоритма на исходном контуре и с добавлением 10x точек подразбиения контура. На 10х хорошо видно улучшение качества контура.
Вложения
1th.png (4819 просмотров) <a class='original' href='./download/file.php?id=344&mode=view' target=_blank>Загрузить оригинал (128.92 КБ)</a>
10th.png (4819 просмотров) <a class='original' href='./download/file.php?id=345&mode=view' target=_blank>Загрузить оригинал (77.49 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

В общем простенький фикс:
если F становится inf или nan то возращаем большую ошибку ...

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

строка 984, после:
					F1 = inv(F1)
добавить :				
					if (	 math.isnan(F[0]) or math.isnan(F[1]) or math.isnan(F[2]) or 
							 math.isinf(F[0]) or math.isinf(F[1]) or  math.isinf(F[2]) ):
						return t+[1e100,i]	
dormouse писал(а):Добавлено сравнение работы алгоритма на исходном контуре и с добавлением 10x точек подразбиения контура. На 10х хорошо видно улучшение качества контура.
Это известная проблема, но пока не вижу ее решения. Траектория расходится, т.к. траектория это набор сегментов, построенных по четырем точкам. Если первые точки у сегментов не совпадают, то будет расхождения между сегментами и после совпадения точек...
Вложения
gcode_engraving_0022.png (4819 просмотров) <a class='original' href='./download/file.php?id=346&mode=view' target=_blank>Загрузить оригинал (42.92 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Конвертация в G-код

Сообщение Nick »

Интересно, как оно выглядит в Axise или других программах, похоже на правду?
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

небольшая незадача. Питонов у меня штуки 4 установлено на компе (один в блендере, другой в инкскейпе, отдельно 3-ий).
Если в коде написать import sys, sys.version, то скажут 2.5.4, а math.isnan появился с 2.6 =)

('ver:', '2.5.4 (r254:67916, Jan 29 2009, 12:02:11) [MSC v.1310 32 bit (Intel)]')

Вывод: надо либо вручную перебить эти функции на не очевидные

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

def isnan(x): return type(x) is float and x != x
def isinf(x): inf = 1e5000; return x == inf or x == -inf
из http://www.johndcook.com/blog/2009/07/2 ... ic-python/
или ещё что-то изобрести.

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

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

Сообщение Nick »

Говорят, что если python <=2.5, то х!=х не всегда верно для x=nan...
Рекомендуют использовать numpy...
Но, я думаю на данный момент можно использовать твой вариант. Пока люди не начнут багрепорты писать :).
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

liveCD EMC2 Ubuntu 8.04. Там последний инкскейп не заработает. Скоро протестирую, работает ли rev14 под Inkscape 0.46
Последний раз редактировалось dormouse 24 мар 2010, 14:26, всего редактировалось 2 раза.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Здесь http://ubuntuforums.org/showthread.php?t=1367490 описано как поставить inkscape 0,47 на ubuntu 8,04.
У меня ЕМС, зараза такая, с live cd 8.04 не идет :( (выдает segmentation fault при тесте realtime и вылетает, а после этого еще и клавиатура перестает работать :) ) . Работает только с 6.06.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

1) Я, наверное, немного некорректно высказался. Другими словами:
Если обычный юзер ставит Inkscape ПОСЛЕДНИЙ с сайта для win32, то он получает среду 2.5.4 в которой текущий вариант кода (с добавление проверок на бесконечность в цикле) работать НЕ БУДЕТ.

2) Разбил engraving.svg на Add Nodes-->By max.segment length, 10, 2. Счёт шёл минут 10..15. всё посчиталось, питон не упал. Буду смотреть в emc результат.

3) Вообще конструкции вида "G02 x10 y10 z10 i5 j5 k5" будут работать? Мне ранее казалось, что в emc только в одной из трёх плоскостей может строиться дуга? раздел 11.10G17,G18,G19,G17.1,G18.1,G19.1 PlaneSelection из http://www.linuxcnc.org/docs/EMC2_User_Manual.pdf
Вложения
engraving-10x.png (4815 просмотров) <a class='original' href='./download/file.php?id=349&mode=view' target=_blank>Загрузить оригинал (247.9 КБ)</a>
Последний раз редактировалось dormouse 24 мар 2010, 14:42, всего редактировалось 2 раза.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Дуга будет дугой, только при виде сверху в проекции на XY. В проекции на ZX и ZY она будет прямой. Работать будет.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

предварительно не соглашусь. EMC2 говорит "k word given for arc in XY plane" и не отображает в backplot. Полагаю, что все K[...] надо убрать из всех строк G02/03. Попробовал на нескольких строках - они отобразились нормально и EMC2 их исполнила (ver2.3.0)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

По-моему, не совсем так, если G02,G03 находятся в плоскости xy, т.е. dz = 0 то конструкция G02 X10 Y10 i5 j5 k0 будет ошибочна.
Но G02 X10 Y10 Z10 i5 j5 k5 вроде должно работать...
Я это проверял, но это было давно ...
Нужно перепроверить ...
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Перепроверил. В режиме ручного ввода именно эта строка (g02 x10y10z10 i5j5k5) ругнулась "k word..." и не исполнилась (начали с g0x0y0z0). убираем K, получаем результат.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Значит я не прав :).
Сейчас пофикшу...
Фикс:

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

строка  758 или около того :) :
						g += ("G02" if s[3]>0 else "G03") + c(si[0]+[ s[5][1]+depth, (s[2][0]-s[0][0]),(s[2][1]-s[0][1]), (s[5][1]-s[5][0])/2  ]) + feed + "\n"
удалить ", (s[5][1]-s[5][0])/2", чтобы стало:
						g += ("G02" if s[3]>0 else "G03") + c(si[0]+[ s[5][1]+depth, (s[2][0]-s[0][0]),(s[2][1]-s[0][1]) ]) + feed + "\n"

Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Уже было сделано к тому моменту =)
На всякий случай мой вариант всего обсуждённого http://kalyaev.com/ --> blog --> сегодня, поскольку прав на запись в репозиторий у меня нет. Или http://kalyaev.com/2010/20100324/gcode_ ... -rev14a.py (надо сразу правой мышкой, левой ни к чему )

P.S. Лучше "было-стало" выкладывать прям выводом diff --suppress-common-lines или через интерфейс репозитория, если он сходу кажет суть предстоящей правки.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Права готов предоставить :). Давай логин ланчпадовский!
Кстати, по поводу гкода, заглубление по z нормально экспортится? Правильно ли оно инвертировано относительно поверхности?
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

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

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

Сообщение Nick »

Надеюсь, я тебя добавил ... там таких было два :).
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

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

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

Сообщение Nick »

Ок, в какую вкладку?

Кстати, какое максимальное количество узлов в контуре стало, после добавления узлов каждые 10рх?
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

2002 штуки. "вести лог" и "путь к лог файлу" на Preferences выглядят логичным решением.
Ответить

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