Разработка 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 (181482 просмотра) <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: Inkscape plug-in для экспорта в Gcode

Сообщение dormouse »

1. Очень на многих материалах при "фрезах С режущим центром" (фреза-сверло) есть ньюанс: скорость сверления не равна скорости бокового реза. При этом (насколько мой опыт показывает) - скорость бокового реза одинаковая для любого заглубления, если всё как надо настроено.
2. Функцию профиля фрезы(от глубины) можно задать непосредственно в формате питона, т.к. интерпретируемый кусок мы можем без проблем пихать прям в код =) На практике для начала я бы ограничился двумя параметрами: диаметр и высота конуса (угол нереально посчитать обычным инструментом)..
Аватара пользователя
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 »

нужна отдельная скорость заглубления?
Нужна. Делать необходимо, т.к. в реальной жизни регулярно скорость по вертикали и горизонтали не совпадают.
Так угол равен высота на диаметр?
Для простейшего случая - да. Для "сложного" профиль фрезы надо задавать для всех фрез. Наиболее используемые:
2 - скруглённый цилиндр (2а - с центральной плоской частью)
3 - треугольная фреза (номер 5 - со срезом)
Пихать в переменную чистый питон это долгая дырка безопасности
.
IMHO, в данном случае это очень оправданный риск.
Гравировка делается чем-то кроме конуса?

Конечно, да: шариковой фрезой (вроде 11)
Кстати, та траектория которая на рисунках подходит или нет. Что в ней не так?
Непонятны некоторые места. Прокомментирую следующим постом.
Вложения
cutters.png (4498 просмотров) <a class='original' href='./download/file.php?id=334&mode=view' target=_blank>Загрузить оригинал (147.22 КБ)</a>
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Пара неясных мест! Справа сверху траектория залезла на контур. все траектории почему-то отходят на переменное расстояние от контура (ожидается, что расстояние должно быть постоянным, пока укладываются D фрезы между ближайшими линиями контура).
Вложения
traj.png (4498 просмотров) <a class='original' href='./download/file.php?id=335&mode=view' target=_blank>Загрузить оригинал (85.85 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Это происходит потому, что в этих местах всего один сегмент.
Например самый нижний контур это контур из трех сегментов. Кривая траектории строится по четырем точкам. Точки получаются оффсетом исходной кривой в t=0, 0.25, 0.75 и 1. Так сегмент большой, то кривая получается очень плавная. По кривой получается оффсет 0, d, d, 0 в точках t=0, 0.25, 0.75 и 1 соответственно. Если разбить сегмент на несколько, то получится совсем другой результат.

Попробуй последнюю версию отсюда:
https://launchpad.net/gcodetools
(bzr branch lp:gcodetools)
Вкратце, выбираешь кривую или несколько кривых, ставишь диаметр фрезы, во вкладке engraving ставишь диаметр цилиндра грубой обработки и все.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Очередной баг фикс...
gcode_engraving_0020.png (4497 просмотров) <a class='original' href='./download/file.php?id=336&mode=view' target=_blank>Загрузить оригинал (258.79 КБ)</a>
Кстати, если включить галочку Draw additional graphics to debug engraving path, то будет видно как рассчитывается отступ. Синие линии - нормальки в точке, маленкая окружность - точка отступа траектории (она может лежать дальше от контура, чем траектория, т.к. отступ для траектории это минимум из отступа и диаметра фрезы) и большая окружность - это окружность вписанная в контур, с помощью которой вычисляется точка отступа (точка отступа ее центр).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение Nick »

Долго думал, как решать систему, когда корень будет находится в точке оффсета. И подумал, что тогда радиус окружности равен вписанной окружности в сегмент кривой, и что он зависит от второй производной.
И нашел статью : http://ru.wikipedia.org/wiki/Соприкасающаяся_окружность
И по английски с формулой : http://en.wikipedia.org/wiki/Osculating_circle
Щас нужно реализовать, и тогда наверное исчезнет еще один баг.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Чуть не забыл уточнить про задание профиля фрезы Z(w). Для "функций" есть целый ряд проблем:
1. Сложно для неподготовленного пользователя понять саму идею и после воспользоваться, т.к. обычные люди графики плохо понимают, особенно сложные
2. Надо указывать несколько функций + их интервалы для построения простейших форм "скруглённый цилиндр", усечённый конус...

Из этого я делаю вывод, что адекватней брать выделенную кривую (отдельно нарисованный профиль фрезы) вместо функционального кода в своём формате.


[эта информация повод к размышлению, а не руководство к непосредственному действию(!)]
P.S. Если делать "по уму", то профиль фрезы должен состоять из двух частей: режущая и не-режущая часть. скажем у фрезы D=4mm режут ~14мм, далее идёт D=8mm хвостовик и т.п.
Аватара пользователя
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 »

Мы ещё обсуждали задание профиля самой поверхности при помощи кривой, а уже от этой поверхности идёт чертёж. При этом можно цепляться глухой частью фрезы за изготовленную ранее резьбу.
Особо эти проблемы касаются торцевых пазовых фрез. Для малых диаметров (2..3.5мм) режущая часть короткая и очень актуально "не цепляться" глухой частью за оставленные прошлыми номерами. Т.е. либо надо задавать различный масштаб для разных фрез (вначале на 20мм режем фрезой 1, потом сдвигаем нулевой уровень на 10мм вниз и режем 10мм N2) либо как-то по-другому выходить из положения =)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Очередной багфикс + добавление вычисления кривизны кривой в точке.
+ Дополнительное разбиение контура (Расширения - Добавить узлы ( по длине сегмента 50 ) )
Время обработки < 20 сек. на все.
gcode_engraving_0021.png (4519 просмотров) <a class='original' href='./download/file.php?id=337&mode=view' target=_blank>Загрузить оригинал (192.87 КБ)</a>
Думаю, можно начинать писать экспорт.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Да. Выглядит отменно. В любом случае - это уже позволить решать реальные задачи. При экспорте надо обратить внимание, чтоб сразу работала сортировка - все контуры только в одну сторону резать надо! В реальной жизни если смотреть со стороны инструмента на деталь, то вращение идёт по часовой стрелке (и покупной инструмент с этим расчётом продаётся) => по часовой же и надо всё резать! Направления показаны тонкими красными стрелками.
Вложения
traj.png (4519 просмотров) <a class='original' href='./download/file.php?id=339&mode=view' target=_blank>Загрузить оригинал (70.83 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ок, направление продумаем ...
Хотя, тут есть вопрос: как определить направление кривой, по часовой оно или нет? Плюс, есть ведь не только внутренние углы, но еще и внешние, для них направление должно быть другое, или нет?


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

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

Сообщение dormouse »

Странная постановка вопроса. Фреза вращается по часовой стрелке, если смотреть сверху => двигаться надо так, чтобы материал резался "навстречу", т.е. если фреза движется вправо, то режет верхний край, если влево, то нижний.
Это вообще не касается углов и т.п. Это касается ТОЛЬКО материала и фрезы.
Вложения
direction.png
direction.png (8.69 КБ) 4518 просмотров
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение Nick »

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

1. При нажатии на Apply скрипту передаются параметры

далее проверяетсч какая функция выполняется

1. Path to gcode
a. Check dirs Выполняется проверка директория, его существованя, наличия прав на запись. Проверяется наличие файлов header и footer.
2. Поочередно для всех контуров выполняется функция parse curve, которая сначала подготавливает контур: разбивает на субконтуры, сортирует их с целью уменьшеня холостого пробега и выполняет biarc для всех сегментов субконтуров.
К полученному массиву добавляются два элемента - начало и конец контура.
Затем полученный массив передается функции generate gcode с заданной глубиной обработки для всех шагов обработки.

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

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

Сообщение dormouse »

Для тех, кто умеет пользоваться UML ("в голове есть понятия") полно спец-редакторов.
Обывательский подход: для простейших случаев OpenOffice Draw. Для "посложнее" - http://ru.wikipedia.org/wiki/Dia
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

dormouse писал(а):Для тех, кто умеет пользоваться UML ("в голове есть понятия") полно спец-редакторов.
Обывательский подход: для простейших случаев OpenOffice Draw. Для "посложнее" - http://ru.wikipedia.org/wiki/Dia

Пользоваться пока не умею, хотя представление имею, в институте проходили... Мне интересно, есть ли редактор uml, который может отпарсить питон для создания базовой структуры, ну и имел бы соответственно обратный экспорт в питон.

Draw он имхо нужен чтоб диаграммки общего плана рисовать, а тут нужно uml :).

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

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

Сообщение dormouse »

вроде таких средств имеется в мире...
http://www.visual-paradigm.com/download ... edition=ce
http://www.visual-paradigm.com/support/ ... engin.html
Надо попробовать поискать.
Ответить

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