Страница 8 из 39
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод
Добавлено: 07 дек 2009, 11:39
Nick
Разработка Gcodetools
Эта ветка посвящена разработке
Gcodetools, плагина для векторного редактора
Inkscape, позволяющего конвертировать кривые из Inkscape в Gкод, используя круговую и линейную интерполяцию.
Описание работы, установка, помошь и уроки по плагину можно найти в теме:
Gcodetools - plug-in Inkscape для экспорта в Gcode
На данный момент ведется работа над Gcodetools 1.7
Что мы хотим увидеть в новой версии:
- Улучшение расширения для плазменной резки
- Добавление дополнительных опций экспорта:
- Улучшение функции обработки площади
- Угол заглубления
- Расширение для сверловки
Требуются
- Тестеры
- Разработчики
- Помощь в технических аспектах по работе станков и обработке материалов
- Новые идеи
Последняя версия
Исходный код находится на launchpad.net. Получить последнюю версию при помощи bazaar можно так:
Последнюю версию можно загрузить через 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: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 14:42
dormouse
1. Очень на многих материалах при "фрезах С режущим центром" (фреза-сверло) есть ньюанс: скорость сверления не равна скорости бокового реза. При этом (насколько мой опыт показывает) - скорость бокового реза одинаковая для любого заглубления, если всё как надо настроено.
2. Функцию профиля фрезы(от глубины) можно задать непосредственно в формате питона, т.к. интерпретируемый кусок мы можем без проблем пихать прям в код =) На практике для начала я бы ограничился двумя параметрами: диаметр и высота конуса (угол нереально посчитать обычным инструментом)..
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 15:28
Nick
Так тебе нужна отдельная скорость заглубления? Ну это просто. Надо было сразу сказать

.
Так угол равен высота на диаметр? Или нет. Пихать в переменную чистый питон это долгая дырка безопасности. У инкскейпаиестт экстеншн который рисует функции, можно использовать его код для задания функции формы фрезы. Кстати, а такая гравировка делается чем-токроме конуса? Какие формы фрез вобще используются. Если не сложно, сфоткай свои фрезы (вместе с линейкой) чтобы к меня появилось более конкретное понимание процесса.
Кстати, та траектория которая на рисунках подходит или нет. Что в ней не так?
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 16:10
dormouse
нужна отдельная скорость заглубления?
Нужна. Делать необходимо, т.к. в реальной жизни регулярно скорость по вертикали и горизонтали не совпадают.
Так угол равен высота на диаметр?
Для простейшего случая - да. Для "сложного" профиль фрезы надо задавать для всех фрез. Наиболее используемые:
2 - скруглённый цилиндр (2а - с центральной плоской частью)
3 - треугольная фреза (номер 5 - со срезом)
Пихать в переменную чистый питон это долгая дырка безопасности
.
IMHO, в данном случае это очень оправданный риск.
Гравировка делается чем-то кроме конуса?
Конечно, да: шариковой фрезой (вроде 11)
Кстати, та траектория которая на рисунках подходит или нет. Что в ней не так?
Непонятны некоторые места. Прокомментирую следующим постом.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 16:16
dormouse
Пара неясных мест! Справа сверху траектория залезла на контур. все траектории почему-то отходят на переменное расстояние от контура (ожидается, что расстояние должно быть постоянным, пока укладываются D фрезы между ближайшими линиями контура).
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 16:43
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 ставишь диаметр цилиндра грубой обработки и все.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 17:34
Nick
Очередной баг фикс...
Кстати, если включить галочку Draw additional graphics to debug engraving path, то будет видно как рассчитывается отступ. Синие линии - нормальки в точке, маленкая окружность - точка отступа траектории (она может лежать дальше от контура, чем траектория, т.к. отступ для траектории это минимум из отступа и диаметра фрезы) и большая окружность - это окружность вписанная в контур, с помощью которой вычисляется точка отступа (точка отступа ее центр).
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 18:09
Nick
Теперь появилась проблема в отделении корня системы по оси t1 и t2 <=> нахождение приближенного решения. Чего-то у меня башка сегодня не очень варит...
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 22 мар 2010, 22:18
Nick
Долго думал, как решать систему, когда корень будет находится в точке оффсета. И подумал, что тогда радиус окружности равен вписанной окружности в сегмент кривой, и что он зависит от второй производной.
И нашел статью :
http://ru.wikipedia.org/wiki/Соприкасающаяся_окружность
И по английски с формулой :
http://en.wikipedia.org/wiki/Osculating_circle
Щас нужно реализовать, и тогда наверное исчезнет еще один баг.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 00:02
dormouse
Чуть не забыл уточнить про задание профиля фрезы Z(w). Для "функций" есть целый ряд проблем:
1. Сложно для неподготовленного пользователя понять саму идею и после воспользоваться, т.к. обычные люди графики плохо понимают, особенно сложные
2. Надо указывать несколько функций + их интервалы для построения простейших форм "скруглённый цилиндр", усечённый конус...
Из этого я делаю вывод, что адекватней брать выделенную кривую (отдельно нарисованный профиль фрезы) вместо функционального кода в своём формате.
[эта информация повод к размышлению, а не руководство к непосредственному действию(!)]
P.S. Если делать "по уму", то профиль фрезы должен состоять из двух частей: режущая и не-режущая часть. скажем у фрезы D=4mm режут ~14мм, далее идёт D=8mm хвостовик и т.п.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 08:33
Nick
Да, это хорошая идея.
Я думаю можно сделать "библиотеку фрез" которую хранить в ? директории для вывода? Там хранить фрезы и их описание, а при экспорте брать информацию из библиотеки.
Только нужно будет написать интерфейс работы с библиотекой...
Кстати на сколько я понимаю, хвостовик и размер режущей части нас не очень должен волновать. От него зависит глубина реза за проход, которая задается вручную.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 10:16
dormouse
Мы ещё обсуждали задание профиля самой поверхности при помощи кривой, а уже от этой поверхности идёт чертёж. При этом можно цепляться глухой частью фрезы за изготовленную ранее резьбу.
Особо эти проблемы касаются торцевых пазовых фрез. Для малых диаметров (2..3.5мм) режущая часть короткая и очень актуально "не цепляться" глухой частью за оставленные прошлыми номерами. Т.е. либо надо задавать различный масштаб для разных фрез (вначале на 20мм режем фрезой 1, потом сдвигаем нулевой уровень на 10мм вниз и режем 10мм N2) либо как-то по-другому выходить из положения =)
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 11:50
Nick
Очередной багфикс + добавление вычисления кривизны кривой в точке.
+ Дополнительное разбиение контура (Расширения - Добавить узлы ( по длине сегмента 50 ) )
Время обработки < 20 сек. на все.
Думаю, можно начинать писать экспорт.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 12:06
dormouse
Да. Выглядит отменно. В любом случае - это уже позволить решать реальные задачи. При экспорте надо обратить внимание, чтоб сразу работала сортировка - все контуры только в одну сторону резать надо! В реальной жизни если смотреть со стороны инструмента на деталь, то вращение идёт по часовой стрелке (и покупной инструмент с этим расчётом продаётся) => по часовой же и надо всё резать! Направления показаны тонкими красными стрелками.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 13:37
Nick
Ок, направление продумаем ...
Хотя, тут есть вопрос: как определить направление кривой, по часовой оно или нет? Плюс, есть ведь не только внутренние углы, но еще и внешние, для них направление должно быть другое, или нет?
По поводу того угла, стоит настройка что углы > 150 градусов за острые не считать...
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 14:10
dormouse
Странная постановка вопроса. Фреза вращается по часовой стрелке, если смотреть сверху => двигаться надо так, чтобы материал резался "навстречу", т.е. если фреза движется вправо, то режет верхний край, если влево, то нижний.
Это вообще не касается углов и т.п. Это касается ТОЛЬКО материала и фрезы.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 14:23
Nick
Да, что-то я ступил

.
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 15:28
Nick
Ост не совсем в тему. Сидел на обеде и размышлял над экспортом контура с переменной шириной. И понял, что уже плохо помню функции. Общий алгоритм экспорта.
1. При нажатии на Apply скрипту передаются параметры
далее проверяетсч какая функция выполняется
1. Path to gcode
a. Check dirs Выполняется проверка директория, его существованя, наличия прав на запись. Проверяется наличие файлов header и footer.
2. Поочередно для всех контуров выполняется функция parse curve, которая сначала подготавливает контур: разбивает на субконтуры, сортирует их с целью уменьшеня холостого пробега и выполняет biarc для всех сегментов субконтуров.
К полученному массиву добавляются два элемента - начало и конец контура.
Затем полученный массив передается функции generate gcode с заданной глубиной обработки для всех шагов обработки.
Мда... Нужно для этого всего диаграмму нарисовать. Кто-нибудь знает на чем лучше рисовать диаграмму для написанного кода?
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 15:31
dormouse
Для тех, кто умеет пользоваться UML ("в голове есть понятия") полно спец-редакторов.
Обывательский подход: для простейших случаев OpenOffice Draw. Для "посложнее" -
http://ru.wikipedia.org/wiki/Dia
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 16:45
Nick
dormouse писал(а):Для тех, кто умеет пользоваться UML ("в голове есть понятия") полно спец-редакторов.
Обывательский подход: для простейших случаев OpenOffice Draw. Для "посложнее" -
http://ru.wikipedia.org/wiki/Dia
Пользоваться пока не умею, хотя представление имею, в институте проходили... Мне интересно, есть ли редактор uml, который может отпарсить питон для создания базовой структуры, ну и имел бы соответственно обратный экспорт в питон.
Draw он имхо нужен чтоб диаграммки общего плана рисовать, а тут нужно uml

.
хмммм
http://en.wikipedia.org/wiki/List_of_UML_tools
Re: Inkscape plug-in для экспорта в Gcode
Добавлено: 23 мар 2010, 17:02
dormouse