Разработка 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 (182912 просмотров) <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: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение Nick »

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

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

Сообщение Nick »

Ревизия 102

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

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

Сообщение Nick »

Ревизия 104

Исправил ошибку с инструментами. В self.get_tool было tool=self.default_tool, а потом этот tool менялся, что приводило к изменениям в self.default_tool. Исправил на tool = self.default_tool.copy() .
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Надо будет обсудить условно-окончательный способ захода фрезы, т.е. выбрать способ для пользователя определять алгоритм входа:
1. опустились на depth_downStep, проехали L=tg A, (или прошли кусок траектории "по диагонали по Z")
1.a приподнялись на -3*depth_downStep, вернулись обратно по траектории
1.в на Zsafe и по прямой
опустились до 2*depth_downStep, повторяем вплоть до depth_sideStep, после этого проход на эту большу глубину depth_sideStep=n*depth_downStep
2. резать слоями depth_downStep
3. резать под углом A вплоть до depth_sideStep, потом дорезать на это фиксированной глубине до точки полного входа и опять начать заглубляться под углом A до depth_sideStep*2 и т.п.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

dormouse писал(а):Надо будет обсудить условно-окончательный способ захода фрезы, т.е. выбрать способ для пользователя определять алгоритм входа:
1. опустились на depth_downStep, проехали L=tg A, (или прошли кусок траектории "по диагонали по Z")
1.a приподнялись на -3*depth_downStep, вернулись обратно по траектории
1.в на Zsafe и по прямой
опустились до 2*depth_downStep, повторяем вплоть до depth_sideStep, после этого проход на эту большу глубину depth_sideStep=n*depth_downStep
2. резать слоями depth_downStep
3. резать под углом A вплоть до depth_sideStep, потом дорезать на это фиксированной глубине до точки полного входа и опять начать заглубляться под углом A до depth_sideStep*2 и т.п.
возможность выбора это хорошо!
Какие функции нужно еще написать для того чтобы это реализовать?

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

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

Сообщение dormouse »

У меня два тестирующих станка: 160х220х100..300 по металлу и 1500х350х200 по дереву и камню. На втором можно на стол ставить токарный станок (A- координата, четвёртая ось).
Так что ответ "по дереву и не очень точный есть".

Насчёт выбора, я думаю это должно быть поле в tool: "penetration:A/B/C/D"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение dormouse »

Отлично. Надеюсь сможем оказаться готовыми к 0.49 чтобы ничего не глючило явным образом, самообновлялось и обросло видео- и прочими туториалами.
На той неделе опять активно начну править. Надо всё-таки реализовать различный вход в материал фрезой и доделать сортировку (у меня квадратно-гнездовой метод используется, выбирает одну из 8 траекторий, самую быструю) + окончательно перевести dxfpoint:1 на "inkscape:dxfpoint":1.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение dormouse »

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

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

Сообщение dormouse »

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

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

Сообщение Nick »

Wow! Крутой интерфейс! :)
Теперь нужно понять, нужен ли нам такой же интерфейс? Сделать не проблема, в gtk достаточно просто рисовать интерфейсы, проблема все грамотно разработать :).

ЗЫ

Спасибо за муфты!!! :D :D :D

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

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

Сообщение dormouse »

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

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

суть метода:
1. выбираем сетку достаточного размера ячейки
2. для каждой ячейки в которой есть линия исходного контура рисуем растровый чёрный круг D [либо для каждой точки кривой с шагом 1/2 ребра ячейки]
3. полученную картинку скармливаем алгоритму оконтуривания.

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

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

Сообщение Nick »

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

Предлагаю считать offset/rev117 первым работающим релизом по самописному алгоритму. Искренние поздравления!

ближайшее todo: НЕОБХОДИМО доставить точность всех чисел в G-коде. Либо жёстко ограничить все записи %f на %0.4f либо как-то интеллектуально все принты-в-G-код разбить на 2 строки IF'ом и добавить этот параметр на options/prefereces
Без этого некоторые станки удивляются "аааа!!! зачем все эти цифры???? не, нафиг, тут какая-то ошибка! такой точности не бывает"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Итак, еще раз, что за формат "либо как-то интеллектуально все принты-в-G-код разбить на 2 строки"?
Можно по условию переопределить оператор % для строки на время выполнения функции...

Зыы Как весело убить пол дня :)
http://itolimp.no-ip.org/puzzle/ - it головоломка из 25 уровней. В принципе, все грамотно.
http://simadmin.ru/ - тест для линухоидов-сисадминов прикольный и красивый.

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

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

Сообщение dormouse »

1. предлагаю НЕ переделывать, а оставить этот "как есть" и делать новый. Пусть будет у юзера drop-down с методом A,B,C,D и т.п. Похоже, что панацеи нет и если какой-то работает на конкретной задаче, то его и надо использовать. (пока) текущий offset/rev117 лучше родного, но вполне допускаю что на какой-то кривой он вовсе заглючит а Inkscape'овский отлично отработает.
2. lg, zs, f = 'G00', self.options.Zsafe, " F%f"%tool['feed']
!ОБЯЗАНО! быть для некоторых станков
lg, zs, f = 'G00', self.options.Zsafe, " F%0.4f"%tool['feed']
то же касается всех XYZIJK, паузы и т.п.
Ответить

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