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

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

Сообщение Nick »

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

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


На данный момент в разработке функция Engraving
Стадия разработки:
Разработка завершена, идет исправление ошибок для релиза.
Ориентировочный срок резиза : 2-4 недели.


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

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

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

bzr branch lp:gcodetools
также ее можно загрузить из web-интерфейса:

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

https://launchpad.net/gcodetools
Последняя версия может быть не рабочей! Для получения рабочей версии зайдите сюда: Gcode tools - plug-in Inkscape для экспорта в Gcode
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Насколько я вижу, все либо в прямую сторону (UML→code) либо в виде UML отдельно, code отдельно используют. Надо книжку почитать. может поумнею.
Шпаргалки:
http://www.cheat-sheets.org/saved-copy/ ... 20Card.pdf
http://tnerual.eriogerg.free.fr/umlqrc.pdf
и краткий курс:
http://www.sparxsystems.com/resources/uml2_tutorial/
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Мда..... почему-то возможностей UML не хватает, чтобы описать то, что я наваял :D. (шутка)

Хммм...
Как бы все это отобразить... Я установил umbrello http://en.wikipedia.org/wiki/Umbrello_UML_Modeller, т.к. у него есть и reverse enginering и экспорт в код python.
Но ни как не могу понять, какая диаграмма может отобразить процесс выполнения функций плагина. Может uml для этого вовсе не предназначен?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Да, нужно точно научиться рисовать диаграммы. Сейчас как раз по работе нужно нарисовать диаграмму бизнес процессов... Где бы этому научиться...

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

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

Сообщение dormouse »

root писал(а):Да, нужно точно научиться рисовать диаграммы. Сейчас как раз по работе нужно нарисовать диаграмму бизнес процессов... Где бы этому научиться...

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

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

Сообщение Nick »

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

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

Сообщение Nick »

УРАААААА!!!!! Я нашел баг который меня доставал последние несколько дней! :D :D :D
В оценке погрешности корня вместо abs(F[0]+F[1]+F[2]) нужно было поставить abs(F[0])+abs(F[1])+math.sqrt(abs(F[2])).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ок, можно начинать тестировать. Revision 12 вроде должна быть рабочей.

Хочу подчеркнуть, у меня не было времени/возможности/желания проверять результат экспорта, т.к. на моей рабочей машине не стоит emc. Я проверил, что экспорт работает и, вроде, не выдает ошибок.
Жду комментов/скриншотов/описания правильной/не правильной работы/экспорта/g-кода.

Заранее спасибо :)!

I'll be in touch :).


Забыл написать, как работать :).
  1. выбираем контур/несколько контуров.
  2. вводим параметры:
    • Sharp angle tolerance - угол меньше этого считается острым => в нем радиус отступа сводится к 0
    • Maximum distance for engraving если отступ на протяжении всего сегмента больше, чем Maximum distance for engraving, то этот сегмент удаляется из обработки. По идее этот параметр должен быть равным диаметру цилиндра.
    • Number of sample points used to calculate distance - количество начальных приближений корня той большой системы, которые будут уточняться методом Ньютона. Чем больше, тем дольше работает, возможно (но маловероятно) уберет некоторые глюки если они есть, но если глюков нет, то лучше не увеличивать.
    • Draw additional graphics to debug engraving path рисует нормальки, точки отступа и вписанные окружности, которые демонстрируют как рассчитан отступ. Если появляются глюки, можно включить и посмотреть как на самом деле рассчитан отступ.
    • Cutter shape function z(w)= функция определяющая форму фрезы. Для простого конуса t*w где t - тангенс угла наклона t = d/(2*h) = r/h (радиус на высоту конуса).
  3. Жмем применить.
  4. Оцениваем результат и пишем багрепорт :D.
ЗЫ и в догонку первый баг фикс :). Теперь правильный номер ревизии 14.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Хотя, может на счет Number of sample points used to calculate distance я не совсем прав, с одним из контуров из твоего contours svg при Number of sample points = 4 возникают глюки, а при нем же равном 5 все глюк исчезает :).
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Ревизии 14 нет по ссылке http://bazaar.launchpad.net/~xepecine/g ... -1.4/files
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

dormouse писал(а):Ревизии 14 нет по ссылке http://bazaar.launchpad.net/~xepecine/g ... -1.4/files
упс..... забыл сдеать пуш. Сейчас появится :).
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

1)Качаем и сохраняем в inkscape/extensions
engraving.svg rev13
File gcode_tools-develope.inx rev14
gcode_tools-develope.py rev14
2) открываем inkscape, открываем файл engraving.svg
3) выделяем правый нижний элемент левой мышкой
4) вызываем GCODE tools DEVELOPE ---> переходим на вкладку Engraving. Вводим 150,10,4,w
5) ставим RadioButton в Engraving - работает.
----------
На некоторых других кривых имеем (в той самой строчке). В причине я (пока) не разобрался.
Traceback (most recent call last):
File "C:\Program Files\Inkscape\share\extensions\gcode_tools-develope.py", line 1219, in <module>
e.affect()
File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 207, in affect
self.effect()
File "C:\Program Files\Inkscape\share\extensions\gcode_tools-develope.py", line 1103, in effect
t = find_cutter_center((x1,y1),(nx,ny), cspi[j][i-1], cspi[j], float(n1)/(self.options.engraving_newton_iterations-1))
File "C:\Program Files\Inkscape\share\extensions\gcode_tools-develope.py", line 956, in find_cutter_center
while i==0 or abs(F[0])+abs(F[1])+math.sqrt(abs(F[2])) >engraving_tolerance and i<10:
ValueError: math domain error
----------
Аватара пользователя
admin
Site Admin
Сообщения: 101
Зарегистрирован: 05 мар 2009, 18:23
Репутация: 54
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение admin »

Прикрепи файл с кривой.
По идее, math domain error может дать только math.sqrt, если переменная меньше 0, но там (abs(F[2]))?!? Странно :).
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

корень(модуля) не должен ошибку выдавать. дело в чём-то другом. Вдруг вместо числа какой-то NULL или текст вылез?
Надо оттрейсить принтами все переменные на этой строчке.

все три верхние одну и ту же ошибку выдают. (малый размер, большой, с добавленными узлами x10)
Вложения
gcode-math-error.svg
(16.57 КБ) 778 скачиваний
Аватара пользователя
admin
Site Admin
Сообщения: 101
Зарегистрирован: 05 мар 2009, 18:23
Репутация: 54
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение admin »

Теперь для разработки у нас новая тема...

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

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


На данный момент в разработке функция Engraving
Стадия разработки:
Разработка завершена, идет исправление ошибок для релиза.
Ориентировочный срок резиза : 2-4 недели.


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

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

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

bzr branch lp:gcodetools
также ее можно загрузить из web-интерфейса:

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

https://launchpad.net/gcodetools
Последняя версия может быть не рабочей! Для получения рабочей версии зайдите сюда: Gcode tools - plug-in Inkscape для экспорта в Gcode
Аватара пользователя
admin
Site Admin
Сообщения: 101
Зарегистрирован: 05 мар 2009, 18:23
Репутация: 54
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение admin »

Кстати, чтобы обрабатывалась нужная сторона контура (внутренняя, а не наружная или наоборот), его иногда придется разворачивать. (Контур -> Развернуть)
Аватара пользователя
admin
Site Admin
Сообщения: 101
Зарегистрирован: 05 мар 2009, 18:23
Репутация: 54
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение admin »

хмммм.... у меня никакой ошибки, во все стороны все контуры проверил...
Попробуй отрейсить у себя, для этого раскоментируй один из def print_ (для тебя подойдет второй )
и добавь перед этой строчкой с нужным отступом:

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

print_(( F[0], F[1], F[2] ))
print_(( abs(F[0]),abs(F[1]),abs(F[2]) ))
Скобки двойные обязательны!

ЗЫ Вот результат:
Снимок-gcode-math-error.svg — Inkscape.png (4678 просмотров) <a class='original' href='./download/file.php?id=343&mode=view' target=_blank>Загрузить оригинал (194.07 КБ)</a>


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

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

Сообщение dormouse »

вначале стотыщмильёнов адекватных слов, потом
(-1.#IND, -1.#IND, -1.#IND)
(1.#QNAN, 1.#QNAN, 1.#QNAN)

NAN - предположительно not-a-number, как я говорил в прошлом посте.
-1#IND - минус бесконечность
На самом деле степень подрастает довольно-таки быстро =) Привожу последний заход целиком. e+153 это ОЧЕНЬ много!

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

(0.0, 0.0, 0.0)
(0.0, 0.0, 0.0)
(-18.89507866329906, 1.4089391748291762, -598.15574142594949)
(18.89507866329906, 1.4089391748291762, 598.15574142594949)
(-46780982.073709972, 21019871.830743626, -651057162556181.75)
(46780982.073709972, 21019871.830743626, 651057162556181.75)
(-59681447682674.219, 108128007390998.08, -2.0369476540184039e+026)
(59681447682674.219, 108128007390998.08, 2.0369476540184039e+026)
(-5.2258601696931765e+023, 6.1677297101050536e+023, -4.4560634949623874e+045)
(5.2258601696931765e+023, 6.1677297101050536e+023, 4.4560634949623874e+045)
(-6.844012989449428e+039, 1.0308696380638153e+040, -1.7859459285857014e+077)
(6.844012989449428e+039, 1.0308696380638153e+040, 1.7859459285857014e+077)
(-1.0312287897419261e+068, 1.3880194760549856e+068, -1.0481795313034396e+133)
(1.0312287897419261e+068, 1.3880194760549856e+068, 1.0481795313034396e+133)
(-1.2162265121136006e+110, 1.7352893429902895e+110, -3.5842200217918705e+216)
(1.2162265121136006e+110, 1.7352893429902895e+110, 3.5842200217918705e+216)
(1.1469307843814356e+153, -1.5902808118338326e+153, -8.0356763449030067e+301)
(1.1469307843814356e+153, 1.5902808118338326e+153, 8.0356763449030067e+301)
(-1.#IND, -1.#IND, -1.#IND)
(1.#QNAN, 1.#QNAN, 1.#QNAN)
Последний раз редактировалось dormouse 24 мар 2010, 12:30, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Нашел, под разными системами бесконечность в питоне обрабатывается по-разному...
http://www.johndcook.com/blog/2009/07/2 ... ic-python/

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

x = 1e200; y = x*x

If you’re running Python 3.0 and you print y, you’ll see inf. If you’re running an earlier version of Python, the result may depend on your operating system. On Windows, you’ll see 1.#INF but on Linux you’ll see inf. Now keep the previous value of y and run the following code.

z = y; z /= y

Since z = y/y, you might think z should be 1. But since y was infinite, it doesn’t work that way. There’s no meaningful way to assign a numeric value to the ratio of infinite values and so z contains a NaN. (You’d have to know “how they got there” so you could take limits.) So if you print z you’d see nan or 1.#IND depending on your version of Python and your operating system.

The way you test for inf and nan values depends on your version of Python. In Python 3.0, you can use the functions math.isinf and math.isnan respectively. Earlier versions of Python do not have these functions. However, the SciPy library has corresponding functions scipy.isinf and scipy.isnan.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

известная проблема: вместо сходимости решения идут "в раскачку". Надо ещё ввести проверку, что на следующем шаге решение стало ближе, а не дальше. Если дальше, то предпринять какие-то меры.
Ответить

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