Разработка 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

Сообщение Nick » 13 фев 2012, 12:06

Обертка нужна простая - Группа с тегом gcodetools = heightmap (или какое-нибудь другое название). Плюс внтури группа с параметрами.

Если надо процедуры добавления и парсинга параметров могу написать.

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

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

Сообщение dormouse » 13 фев 2012, 14:22

Так самое время. У меня уже сегодня намечается успешное наложение фильтра фрезы. Профиль фрезы уже как-то отрисовывается.... Есть надежда на этой неделе успешно попробовать первую версию.
Ещё параметр угла передам вместо alpha в градусах напрямую inkscape-матрицу. и т.п. мелочи.
Всё написано небрежно, но это в любом случае годами отлаживать =)

Скорость наложения фильтра фрезы совсем печальная - 2px/s.... хоть отдельную программу пиши на сях и внешним образом вызывай....
Последний раз редактировалось dormouse 13 фев 2012, 14:56, всего редактировалось 1 раз.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 13 фев 2012, 14:52

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

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

Сообщение dormouse » 13 фев 2012, 15:09

Там пока сыровато:
image=gcodetoolsImage("z-depth-01.png",0,0) # файл или содержимое тега href:xlink, угол поворота (заменю на матрицу), ширина рамки
image.applyFilter("nearTrash") # наложить какой-нибудь фильтр (только сильно выдающиеся точки единичные сейчас режет)
tool = image.makeToolDepthMap((0,5,10,10)) # сделать инструмент, заданный картой глубин правой половинки (не векторно) шириной 4 пикселя
image.applyTool(tool, 10) # применить инструмент с возможностью "слизнуть" не более 10 пикселей на весь объём инструмента
print image.data # распечатать depth map
print image.datatool # распечатать depth map, на который наложен инструмент.

Ещё надо сделать .tostring/fromstring для кеширования результатов массива data. И много чего ещё!
=======

Собственно, как раз надо обёртку для стыковки и разработать. Т.е. набор параметров передаваемых. Предварительно:
x,y,w,h,M,xlink, каким-то образом tool и величину погрешности "приближения инструмента".
Может кроме стандартных ещё одну строчку текстовую сделать, а уж этот текст пусть будет разобран внутри конструктора gcodetoolsImage объекта?
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 13 фев 2012, 15:19

dormouse писал(а):Ещё надо сделать .tostring/fromstring

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

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

Сообщение dormouse » 13 фев 2012, 16:29

Есть. Думал целиком всю переменную image в файл кешировать, потом при очередном запуске gcodetools смотреть - не лежит ли случаем кеш с такими же переданными изначально параметрами? и если да, то вместо нового расчёта подтягивать с диска.
Тут некоторая логика подразумевается. Скорее не to/from string, а сравнение параметров и open() временного-долгосрочного между запусками файла. Что-то вроде библиотеки кешей.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение dormouse » 15 фев 2012, 13:13

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

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

Сообщение Nick » 17 фев 2012, 00:05

Да...... сделал дофига... diff весит 62Кб :) Но по теме ничего не сделал, как начал править, так два дня остановиться не мог.
http://bazaar.launchpad.net/~gcodetools ... vision/225

Что сделал:
Из основного, теперь у нас есть встроенная система дебагинга, она пока простая, но универсальная! Питон оказывается такая вещь :shock: :cheesy: :cheesy: :cheesy: !!! С дебагингом мы переходим на новый уровень абстрацкии, просто добавив в объявление класса строчку: debugger.add_debugger_to_class(self.__class__) мы получаем доступ ко всем вызовам функций в этом классе, причем, если параметр дебага=0 то это добавит всего лишь выполнение 1 pass.

При этом код всего дебаггера занимает всего около 20 строчек :D + еще 20 на специфичный дебагинг функий!!!

В общем, в очередной раз проникся Питоном! Я когда написал этот дебаг (за 40 минут) 20 минут ходил по офису и матерился втихоря от пронизавшего меня прозрения и ощущения чистого искусства :hehehe: ! Да-да, именно из-за таких моментов я называю математику и программирование искусством, а не наукой! К сожалению понять это могут не все - вот не знаю как жене объяснить, что такое дебаггер :hehehe:.

Доработал оффет... до примерно вот такого...
На клиппиге попробовал схалявить, т.к. оффсет стал работать сравнительно быстро, то делаем 1 оффсет на R, и второй на R-0.01, смотрим самопересечения первого, и отрезаем все, что пересекает второй. При маленьких R работает хорошо, при больших проявляются глюки алгоритма. Но попробую их добить :).
рисунок-1.svg
(989.19 Кб) Скачиваний: 793
Вложения
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод rect794635.png
Аватара пользователя
Nick
Мастер
 
Сообщения: 22527
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1577
Заслуга: Developer
Медальки:

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

Сообщение NightV » 17 фев 2012, 09:29

напомнил анекдот
Приходит программист к пианистy – посмотреть на новый рояль. Долго ходит вокруг, хмыкает, потом заявляет: – Клава неудобная - всего 84 клавиши :D
Всё просто! если знаешь КАК!
Аватара пользователя
NightV
Почётный участник
Почётный участник
 
Сообщения: 6557
Зарегистрирован: 30 дек 2011, 09:14
Откуда: Israel
Репутация: 2269
Медальки:
Настоящее имя: Владимир Айрапетян

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

Сообщение dormouse » 17 фев 2012, 11:12

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

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

Сообщение Nick » 17 фев 2012, 11:14

dormouse писал(а):... зато две кнопки шифт Shift на педалях - ЭТО КЛАСС!!!

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

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

Сообщение dormouse » 17 фев 2012, 13:11

Я давно делал, но бросил такую штуку: предварительный просмотр (эмуляция) g-code'а через 3D модель, отображаемую в Blender (3D open source редактор).
Я думаю сделать для начала чтобы фотка выгружалась в виде 3D модели во внешний файл для предварительного просмотра + автоматически подгружались отрендеренные модели в виде отдельной фотки на лист Inkscape. Очень полезное средство для осознавания того, какое изделие в конце-концов получится.

Это всё не первоочередное, но вещь приятная. Со временем я сделаю.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 17 фев 2012, 21:10

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

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

Сообщение dormouse » 19 фев 2012, 01:40

Главный смысл был ИМЕННО в постоянном bool blank=blank-tool. Иначе вся идея разрушалась.
Сейчас можно это сделать на уровне мультика как с фиксированного вида, так и с произвольным движением камеры через внешний рендеринг в блендере. если надо - я могу сделать.
как на стадии небольшого куска в gcodetoolsImage наложения так и полноценного рендеринга на стадии post-process (как вариант - один из фильтров).
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 20 фев 2012, 13:30

dormouse писал(а):Главный смысл был ИМЕННО в постоянном bool blank=blank-tool. Иначе вся идея разрушалась. Сейчас можно это сделать на уровне мультика как с фиксированного вида, так и с произвольным движением камеры через внешний рендеринг в блендере. если надо - я могу сделать.

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

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

Сообщение dormouse » 20 фев 2012, 16:09

А... я имел в виду самодельный bool на основе depth-map, т.е. когда из одного кусочка поля-детали вычетается описывающий квадрат инструмента =)
Это для 3-D гигантская проблема. А для одного значения на каждый пиксель вертикальной проекции - плёвое дело.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение dormouse » 22 фев 2012, 12:36

Сделал автоэкспорт в ASCII STL формат. Файлик 1mpix с трудом влезает на CD болванку в виде 3D модели. На каждый пиксель получается 6 треугольников модели в среднем.
Наверное лучше экспортировать в бинарный STL файл =)
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 22 фев 2012, 12:52

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

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

Сообщение dormouse » 29 фев 2012, 15:41

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

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

Сообщение Nick » 29 фев 2012, 16:48

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

Пред.След.

Вернуться в LinuxCNC

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

Зарегистрированные пользователи: aldemm, barroweer, Bing [Bot], dimedved, erygin26, Fed3d, Google [Bot], Lexxa, Majestic-12 [Bot], niksooon, pm_dev, Serb01, Stephan67, svm, SVP, tsurika, uralpt, vitzin, Yandex [bot], Yaroslav, yurayerz

Reputation System ©'