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

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

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

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (175242 просмотра) <a class='original' href='./download/file.php?id=348&sid=af87fc779000fad0cf0cad605b67cd3f&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: Разработка Gcodetools - плагин Inkscape для экспорта в G

Добавлено: 01 мар 2012, 12:07
dormouse
Время. Приходится много работать уже 2 недели. И ещё 1-2 точно вперёд такой же график.
В принципе основной костяк я сделал. Если надо - возьму себя в руки, причешу и выложу. Если с твоей стороны удастся вложить в gcodetools.py + сделать связку с массивом картинок, то через пару неделя я уже адекватно смогу по-настоящему всё доделать. До середины марта я точно ничего толком не сделаю из-за проблем со временем.

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

Добавлено: 01 мар 2012, 12:52
Nick
dormouse писал(а):До середины марта я точно ничего толком не сделаю из-за проблем со временем.
Та же хрень :(

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

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

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

Добавлено: 05 мар 2012, 00:24
Nick
Что-то есть, но все не будет таким универсальным. А какаю у тебя задача, целиком?

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

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

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

Добавлено: 05 мар 2012, 14:57
Nick
muxa писал(а):да, и пресловутая "построчная стратегия" весь фриварный софт делает траекторию только на ней.
а как дуги резать ?
построчная, в смысле заливки площади зиг-загом?
muxa писал(а):операции вроде простейшие и прога бесплатная, а уверенности в результате нет.
Уверенность придет только с большим опытом работы. Любая программа может работать не так как хочется, тем более на начальном этапе использования.

Про наш Gcodetools могу сказать уверенно, что Gкод из готового контура он строит надежно правильно, гравировка и все, что использует отступы может глючить. У меня такое ощущение, что отступы c обрезкой глючить могут везде. Как я уже писал, тот же отступ глючил даже в Rhino, а Rhino - очень серьезный CAD!

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

Добавлено: 16 мар 2012, 20:55
NightV
релиз 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

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

Добавлено: 19 авг 2012, 11:52
stoLem
Доброго дня!
Совсем недавно начал пользоваться плагином 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

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

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

Надо тебе дать доступ к репозиторию на http://www.launchpad.net, чтобы ты мог вносить улучшения в код самостоятельно.
Зарегистрируйся там и скинь мне свой логин.

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

Добавлено: 13 окт 2012, 09:44
torvn77
Не пора ли сделать для этого плугина свой раздел?
А то тема большая,и новому человеку в ней не очень удобно искать информацию.
Да и потом,забыл страницу,ищы заного.

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

Добавлено: 15 окт 2012, 09:37
Nick
Для этого есть вики, туда можно писать ссылки на самые интересные места ;). Я по мере сил сохраняю там полезные ссылки, чтобы их потом долго не искать.
Вики вот тут: http://cnc-club.ru/wiki/index.php/Заглавная_страница
Логинится можно под форумным логином и паролем.

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

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

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

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

Добавлено: 16 окт 2012, 01:20
Nick
torvn77 писал(а):По поводу плугина,я думаю,что вместо "Динамической вытяжки" будет лучше использовать оконтуривание обводки контура,задав ей размер на чуть больше,
Насколько я помню, оба этих метода дают одинаковые результаты (как в плане контура, так и в плане артефактов). Поэтому можно использовать любой из них.
torvn77 писал(а):с последующей коррекцией наездов не туда.
Коррекцией чего?

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

Добавлено: 16 окт 2012, 01:54
torvn77
Контур полученный таким моим методом содержит меньше узлов и получится может только там,где инструмент не будет дотягиватся ни до одной границы гравировки.
С другой стороны контур,полученный "динамической вытяжкой",в некоторых местах может содержать не оправданное количество узлов,странно отоброжаться и вобще ронять Виндовый Inscape.
Тем не менее,если превышение длинны обводки над инструментом слишком мало,то если обводку полученного контура сделать равной диаметру инструмента,то можно увидеть пересечение некоторых участков обводки с нефрезеруемой областью(наезды не туда),которые надо устранять руками.

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

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

Как я уже писал, однажды решил проверить офсет проблемного контура в Rhino (дорогой и хороший CAD) - он тоже наделал на этом контуре артефактов.

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

Добавлено: 16 окт 2012, 10:15
torvn77
Я правильно понимаю,то что то действие,про которое я написал назыется офсетом?
Дело в том,что офсеты сделаные оконтуриванием обводки контура таких проблем пока у меня не создавали.
Как то раз я перепутал и сделал вытяжку,так она посыпалась,откатился и оконтурился,проблемы нет.
В конце концов мы ведь не макеты рисуем,а переводим множество точек подлежащих обработке,
в множество точек,уже обработанных и поэтому точность промежуточных результатов не важна.
Вместо этой возни не проще ли было б разбить,коли мы делаем фрезеровку 2.5D,
на слои с разной глубиной и пустить гулять по ним метящею свой путь вектором черепашку соответствующего инструменту размера?

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

Добавлено: 16 окт 2012, 14:42
Nick
Вот простой пример появления артефактов. Обводка делается с разными скруглениями.

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

"Черепашка" не универсальна, хочется получать хороший плавный контур.

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

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

П.С.правильнее былобы назвать не Черепашкой,а Пакманом,питающимся неотфрезерованными областями.

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

Добавлено: 17 окт 2012, 00:09
Nick
torvn77 писал(а):А что вы понимаете под удачным контуром путём фрезы?
Плавный контур не содержащий слишком большого количества узлов.

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

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

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

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

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

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

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

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

В чём сложность с изолированными областями?