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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Следующее направление разработки

Можно выбрать до 5 вариантов ответа

 
 
Результаты голосования

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

Сообщение Nick » 07 дек 2009, 11:39

Разработка Gcodetools


Разработка Gcodetools - плагин Inkscape для экспорта в Gкод Screenshot-output.ngc - AXIS-4.png

Эта ветка посвящена разработке 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.team/gcodetools/develope/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
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 01 мар 2012, 12:07

Время. Приходится много работать уже 2 недели. И ещё 1-2 точно вперёд такой же график.
В принципе основной костяк я сделал. Если надо - возьму себя в руки, причешу и выложу. Если с твоей стороны удастся вложить в gcodetools.py + сделать связку с массивом картинок, то через пару неделя я уже адекватно смогу по-настоящему всё доделать. До середины марта я точно ничего толком не сделаю из-за проблем со временем.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 01 мар 2012, 12:52

dormouse писал(а):До середины марта я точно ничего толком не сделаю из-за проблем со временем.

Та же хрень :(
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение muxa » 05 мар 2012, 00:07

dxf2gcode
погуглите, посмотрите как сделано там многое из того что вы задумали.
сделано на uber python :hehehe: , сырцы прилагаются.
жаль что забросили его походу :(
З.Ы. Очень полезная фишка есть у vcarve - там при генерации G кода выбираешь слои и вектора которые попадают под операцию. причОм любые которые есть.
соответственно "заготовок" кода есть несколько .
А т.к. есть остановки на смену фрез то соответственно можно и выстраивать "техпроцесс"
- выравнивание/причесывание поверхности
- обход по контуру (выбор - по "центру", изнутри/снаружи делается при генерации)
- отверстия (как замкнутые вектора)
и т.д.
Кстати вот в зоопарке всяческого софта (бесплатного) как то кроме галимой построчной стратегии обработки выбора то и нет :cry:
muxa
 

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

Сообщение Nick » 05 мар 2012, 00:24

Что-то есть, но все не будет таким универсальным. А какаю у тебя задача, целиком?
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение muxa » 05 мар 2012, 09:50

задачи такие же как и у большинства пользователей.
так называемый простейшие операции
- обработка по плоскости
- вырезать отверстие/отверстия
-обработка по контуру .
вроде бы всЁ это заявлено в плагине, но блин до чего ж неудобно пользоваться.
операции вроде простейшие и прога бесплатная, а уверенности в результате нет.
хорошо если это "проба пера" , упороть заготовку не жалко, а если знакомый попросил вырезать ? про коммерческие резы не говорю.
была надежда на dxf2gcode , но так и не смог от него добиться чтоб он при вырезке группы отверстий
учитывал диаметр фрезы :cry:
да, и пресловутая "построчная стратегия" весь фриварный софт делает траекторию только на ней.
а как дуги резать ?
muxa
 

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

Сообщение Nick » 05 мар 2012, 14:57

muxa писал(а):да, и пресловутая "построчная стратегия" весь фриварный софт делает траекторию только на ней.
а как дуги резать ?

построчная, в смысле заливки площади зиг-загом?
muxa писал(а):операции вроде простейшие и прога бесплатная, а уверенности в результате нет.

Уверенность придет только с большим опытом работы. Любая программа может работать не так как хочется, тем более на начальном этапе использования.

Про наш Gcodetools могу сказать уверенно, что Gкод из готового контура он строит надежно правильно, гравировка и все, что использует отступы может глючить. У меня такое ощущение, что отступы c обрезкой глючить могут везде. Как я уже писал, тот же отступ глючил даже в Rhino, а Rhino - очень серьезный CAD!
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение NightV » 16 мар 2012, 20:55

релиз 227
режем квадрат в точке 0,0 размер 100х100, толщина обводки 10, отступ 5

(Change tool to Disk 1.0000)
m6t1
все время пытается сменить инструмент :D
G00 Z 3.0000
G00 X 15.0000 Y 95.0000

G00 Z 3.0000 (Lift up)
G00 A 0.0000 (Turn knife)
G01 Z -1.0000 F 200.0000 (Penetrate back) эта глубина берется из "Orientation points"
G01 Z -0.6000 F 200.0000(Penetrate)заглубление повторяется, но теперь параметр глубины берется из вкладки "Параметры" - "Scale along Z axis"
G01 X 85.0000 Y 95.0000 Z -0.6000 F 1700.0000
G00 Z 3.0000

(Change tool to Disk 1.0000)
m6t1

G00 Z 3.0000
G00 X 95.0000 Y 85.0000

G00 Z 3.0000 (Lift up)
G00 A -90.0000 (Turn knife)
G01 Z -1.0000 F 200.0000 (Penetrate back)
G01 Z -0.6000 F 200.0000(Penetrate)
G01 X 95.0000 Y 15.0000 Z -0.6000 F 1700.0000
G00 Z 3.0000

(Change tool to Disk 1.0000)
m6t1

G00 Z 3.0000
G00 X 85.0000 Y 5.0000

G00 Z 3.0000 (Lift up)
G00 A -180.0000 (Turn knife)
G01 Z -1.0000 F 200.0000 (Penetrate back)
G01 Z -0.6000 F 200.0000(Penetrate)
G01 X 15.0000 Y 5.0000 Z -0.6000 F 1700.0000
G00 Z 3.0000

(Change tool to Disk 1.0000)
m6t1

G00 Z 3.0000
G00 X 5.0000 Y 15.0000

G00 Z 3.0000 (Lift up)
G00 A 90.0000 (Turn knife)
G01 Z -1.0000 F 200.0000 (Penetrate back)
G01 Z -0.6000 F 200.0000(Penetrate)
G01 X 5.0000 Y 85.0000 Z -0.6000 F 1700.0000
G00 Z 3.0000
Всё просто! если знаешь КАК!
Аватара пользователя
NightV
Почётный участник
Почётный участник
 
Сообщения: 6557
Зарегистрирован: 30 дек 2011, 09:14
Откуда: Israel
Репутация: 2269
Медальки:
Настоящее имя: Владимир Айрапетян

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

Сообщение stoLem » 19 авг 2012, 11:52

Доброго дня!
Совсем недавно начал пользоваться плагином Gcodetools ver.1.7. Вещь замечательная, благодарю разработчиков за их тяжёлый труд.
Правда во время использования программы столкнулся с проблемой её низкой производительности. Просмотрев файл gcodetools.py, заметил множественное использование операции возведения в квадрат. Т.к. операция умножения значительно быстрее возведения в степень, то заменив выражения типа a**2 и (1.01*r)**2 на a*a и 1.0201*r*r соответственно, получил прирост производительности ~11% (операция Engraving выполнялась вместо 230 сек. - 205 сек.). Это не так много как хотелось бы, но всё же приятно :)

И ещё, в описании к Engraving сказано, что формула для шаровой фрезы math.sqrt(max(0,r**2-w**2)), хотя верной формулой будет r-math.sqrt(r**2-w**2)
(тайный смысл max(0,r**2-w**2) я не понял, но ничего не утверждаю и наверное ошибаюсь)

Ниже приложил свой вариант gcodetools.py
Вложения
gcodetools.py.zip
(67.27 Кб) Скачиваний: 361
stoLem
Новичок
 
Сообщения: 1
Зарегистрирован: 19 авг 2012, 11:17
Репутация: 0

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

Сообщение Nick » 19 авг 2012, 15:21

В некоторых случаях возведение в квадрат работало быстрее, когда это значение из какого-нибудь массива типа csp[i][j] то проще возвести в квадрат, да и выглядит более читабельно.

Надо тебе дать доступ к репозиторию на http://www.launchpad.net, чтобы ты мог вносить улучшения в код самостоятельно.
Зарегистрируйся там и скинь мне свой логин.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 13 окт 2012, 09:44

Не пора ли сделать для этого плугина свой раздел?
А то тема большая,и новому человеку в ней не очень удобно искать информацию.
Да и потом,забыл страницу,ищы заного.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 15 окт 2012, 09:37

Для этого есть вики, туда можно писать ссылки на самые интересные места ;). Я по мере сил сохраняю там полезные ссылки, чтобы их потом долго не искать.
Вики вот тут: http://cnc-club.ru/wiki/index.php/Заглавная_страница
Логинится можно под форумным логином и паролем.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 16 окт 2012, 00:58

Ну вики на эту тему пустая,к томуже для подробного изучения житейских хитростей дерево веток форума подходит больше,
так как так как отсутствие необходимости иметь серьёзный вид способствует боле свободному и подробному обсуждению

По поводу плугина,я думаю,что вместо "Динамической вытяжки" будет лучше использовать оконтуривание обводки контура,задав ей размер на чуть больше,
чем размер инструмента с последующей коррекцией наездов не туда.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 16 окт 2012, 01:20

torvn77 писал(а):По поводу плугина,я думаю,что вместо "Динамической вытяжки" будет лучше использовать оконтуривание обводки контура,задав ей размер на чуть больше,

Насколько я помню, оба этих метода дают одинаковые результаты (как в плане контура, так и в плане артефактов). Поэтому можно использовать любой из них.
torvn77 писал(а):с последующей коррекцией наездов не туда.

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

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

Сообщение torvn77 » 16 окт 2012, 01:54

Контур полученный таким моим методом содержит меньше узлов и получится может только там,где инструмент не будет дотягиватся ни до одной границы гравировки.
С другой стороны контур,полученный "динамической вытяжкой",в некоторых местах может содержать не оправданное количество узлов,странно отоброжаться и вобще ронять Виндовый Inscape.
Тем не менее,если превышение длинны обводки над инструментом слишком мало,то если обводку полученного контура сделать равной диаметру инструмента,то можно увидеть пересечение некоторых участков обводки с нефрезеруемой областью(наезды не туда),которые надо устранять руками.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 16 окт 2012, 09:06

Я тебе по секрету скажу, если делать много оффсетов, то увидишь и другие артефакты, в основном они появляются на контрурах с маленьким рычагом на одном из краев, который находится под большим (близким к прямому) углом к контуру. В этом случае на контуре возникает маленький "крючок" который при больших офсетах сильно видоизменяется и либо офсет будет не точным, либо будет сложным в общем оффсеты это большая проблема.

Как я уже писал, однажды решил проверить офсет проблемного контура в Rhino (дорогой и хороший CAD) - он тоже наделал на этом контуре артефактов.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 16 окт 2012, 10:15

Я правильно понимаю,то что то действие,про которое я написал назыется офсетом?
Дело в том,что офсеты сделаные оконтуриванием обводки контура таких проблем пока у меня не создавали.
Как то раз я перепутал и сделал вытяжку,так она посыпалась,откатился и оконтурился,проблемы нет.
В конце концов мы ведь не макеты рисуем,а переводим множество точек подлежащих обработке,
в множество точек,уже обработанных и поэтому точность промежуточных результатов не важна.
Вместо этой возни не проще ли было б разбить,коли мы делаем фрезеровку 2.5D,
на слои с разной глубиной и пустить гулять по ним метящею свой путь вектором черепашку соответствующего инструменту размера?
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 16 окт 2012, 14:42

Вот простой пример появления артефактов. Обводка делается с разными скруглениями.

Артефакты обозначены стрелочкой. Кстати, при экспорте в растр появились дополнительные артефакты, но это мелочи, см svg.

"Черепашка" не универсальна, хочется получать хороший плавный контур.
Вложения
offset-artefacts.svg
(65.89 Кб) Скачиваний: 772
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод rect4385.png
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение torvn77 » 16 окт 2012, 22:21

Попробовал у себя оконтуривание текста и правда,на третьем разе началось безобразие...
А что вы понимаете под удачным контуром путём фрезы?
Черепашка должна работать похоже на зигзаг из площади,но в отличий от него не пересекать,а огибать объект,наматывая вокруг него витки вплоть до заданной границы области фрезеровки.
Помоему,это лучше.

П.С.правильнее былобы назвать не Черепашкой,а Пакманом,питающимся неотфрезерованными областями.
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

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

Сообщение Nick » 17 окт 2012, 00:09

torvn77 писал(а):А что вы понимаете под удачным контуром путём фрезы?

Плавный контур не содержащий слишком большого количества узлов.

В принципе нет проблемы сделать контур, который будет отступать на заданное расстояние от данного. Несмотря на то, что оффсет кривой безье третьего и больших порядков не является кривой Безье! Т.е. его нельзя описать кривой Безье, можно только аппроксимировать. Но это не самое страшное, это делается причем просто. Самое страшное - это клипинг. после того как мы получили кривую с отступом в каждой точке на R в сторону нормали, надо отрезать лишние части. И тут начинаются пляски с бубнами.

И все бы даже ничего, если бы не наша апроксимация, т.к. мы используем не точные значения, нудно задавать допуск на значение критерия отрезать кусок контура или нет. В итоге мы либо убираем лишние куски, либо оставляем не нужные, как артефакты на рисунке выше.

Эх сколько я времени на эту штуку потратил...

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

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

Сообщение torvn77 » 17 окт 2012, 01:11

Может подойти проще:есть множество точек,попадают в контур объекта + область безопасности для черновой обработки и поэтому фрезеровке не подлежат.
Остальное резать "как получится",при случае упрощая контур.

Ну я предполагаю менять инструмент,так что если черепашка находит узкое место,то просто поворачивает.
а этим местом потом займётся черепашка поменьше.
А контур для вашего плугина обязательно должен быть замкнут?
Если нет,то черепашка из узкого места может телепортироватся.

Меня программа волнует в первую очередь с точки зрения изготовления клише для тиснения.
А это значит.что есть небольшая область возле и между буквами и большие пространства(больше 2~3 диаметров инструмента)которую надо просто выгрызть,можно и с частичным перекрытием траекторий,
и область тиснения,которая не обрабатывается вовсе.
Всё это ограничено контуром,по которому готовое клише вырезается из пластины.
Если пытаться делать динамическую вытяжку(или как я вожусь с оконтуриванием),то будут накапливаться всё более мелкие островки необработанной,но подлежащей удалению площади.
собственно на это черепашку я и хочу натравливать.

В чём сложность с изолированными областями?
Дилетанту сложные вещи кажутся очень простыми,а профессионалу простые очень сложными.
В результате дилетант работает,а профессионал чешет в затылке.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2414
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 212
Медальки:

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Andreychpu, axel, Bing [Bot], CybSys, darkmorro, Dimka, drey82, Gestap, Google [Bot], Majestic-12 [Bot], MegaBlackJoe, Mikhgen, mmg, niksooon, pegas13, shalek, sima8520, svm, SVP, Yandex [bot], Леонид Владимирович

Reputation System ©'