Страница 10 из 39

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

Добавлено: 07 дек 2009, 11:39
Nick

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (187374 просмотра) <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 или загрузите предыдущие ревизии.

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

Добавлено: 24 мар 2010, 12:49
dormouse
Добавлено сравнение работы алгоритма на исходном контуре и с добавлением 10x точек подразбиения контура. На 10х хорошо видно улучшение качества контура.

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

Добавлено: 24 мар 2010, 12:58
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х хорошо видно улучшение качества контура.
Это известная проблема, но пока не вижу ее решения. Траектория расходится, т.к. траектория это набор сегментов, построенных по четырем точкам. Если первые точки у сегментов не совпадают, то будет расхождения между сегментами и после совпадения точек...

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

Добавлено: 24 мар 2010, 13:36
Nick
Интересно, как оно выглядит в Axise или других программах, похоже на правду?

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

Добавлено: 24 мар 2010, 13:46
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. Почему-то ответ в другую ветку попал. Я его вручную перенёс обратно сюда.

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

Добавлено: 24 мар 2010, 14:09
Nick
Говорят, что если python <=2.5, то х!=х не всегда верно для x=nan...
Рекомендуют использовать numpy...
Но, я думаю на данный момент можно использовать твой вариант. Пока люди не начнут багрепорты писать :).

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

Добавлено: 24 мар 2010, 14:18
dormouse
liveCD EMC2 Ubuntu 8.04. Там последний инкскейп не заработает. Скоро протестирую, работает ли rev14 под Inkscape 0.46

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

Добавлено: 24 мар 2010, 14:24
Nick
Здесь http://ubuntuforums.org/showthread.php?t=1367490 описано как поставить inkscape 0,47 на ubuntu 8,04.
У меня ЕМС, зараза такая, с live cd 8.04 не идет :( (выдает segmentation fault при тесте realtime и вылетает, а после этого еще и клавиатура перестает работать :) ) . Работает только с 6.06.

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

Добавлено: 24 мар 2010, 14:26
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

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

Добавлено: 24 мар 2010, 14:28
Nick
Дуга будет дугой, только при виде сверху в проекции на XY. В проекции на ZX и ZY она будет прямой. Работать будет.

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

Добавлено: 24 мар 2010, 14:33
dormouse
предварительно не соглашусь. EMC2 говорит "k word given for arc in XY plane" и не отображает в backplot. Полагаю, что все K[...] надо убрать из всех строк G02/03. Попробовал на нескольких строках - они отобразились нормально и EMC2 их исполнила (ver2.3.0)

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

Добавлено: 24 мар 2010, 14:39
Nick
По-моему, не совсем так, если G02,G03 находятся в плоскости xy, т.е. dz = 0 то конструкция G02 X10 Y10 i5 j5 k0 будет ошибочна.
Но G02 X10 Y10 Z10 i5 j5 k5 вроде должно работать...
Я это проверял, но это было давно ...
Нужно перепроверить ...

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

Добавлено: 24 мар 2010, 14:46
dormouse
Перепроверил. В режиме ручного ввода именно эта строка (g02 x10y10z10 i5j5k5) ругнулась "k word..." и не исполнилась (начали с g0x0y0z0). убираем K, получаем результат.

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

Добавлено: 24 мар 2010, 14:48
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"


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

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

P.S. Лучше "было-стало" выкладывать прям выводом diff --suppress-common-lines или через интерфейс репозитория, если он сходу кажет суть предстоящей правки.

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

Добавлено: 24 мар 2010, 15:17
Nick
Права готов предоставить :). Давай логин ланчпадовский!
Кстати, по поводу гкода, заглубление по z нормально экспортится? Правильно ли оно инвертировано относительно поверхности?

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

Добавлено: 24 мар 2010, 15:25
dormouse
через часок-другой всё отлажу и расскажу о результатах. логин такой же `dormouse'

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

Добавлено: 24 мар 2010, 16:28
Nick
Надеюсь, я тебя добавил ... там таких было два :).

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

Добавлено: 24 мар 2010, 16:33
dormouse
Да, меня. Надо добавить в интерфейс "вести лог-файл" и "путь для лог-файла". Это снимет кросс-платформенные проблемы функции "print_".

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

Добавлено: 24 мар 2010, 16:36
Nick
Ок, в какую вкладку?

Кстати, какое максимальное количество узлов в контуре стало, после добавления узлов каждые 10рх?

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

Добавлено: 24 мар 2010, 17:13
dormouse
2002 штуки. "вести лог" и "путь к лог файлу" на Preferences выглядят логичным решением.