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

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

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

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (175007 просмотров) <a class='original' href='./download/file.php?id=348&sid=5a4cb47566a8209c10fe5d4be4b1cf30&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

Добавлено: 13 фев 2012, 12:06
Nick
Обертка нужна простая - Группа с тегом gcodetools = heightmap (или какое-нибудь другое название). Плюс внтури группа с параметрами.

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

--------
Сегодня на баше прочитал:
Судя по отступам, Маяковский писал на питоне
:hehehe:

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

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

Скорость наложения фильтра фрезы совсем печальная - 2px/s.... хоть отдельную программу пиши на сях и внешним образом вызывай....

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

Добавлено: 13 фев 2012, 14:52
Nick
Скинь свои наработки в bazaar, чтобы сразу стыковать.

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

Добавлено: 13 фев 2012, 15:09
dormouse
Там пока сыровато:
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 объекта?

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

Добавлено: 13 фев 2012, 15:19
Nick
dormouse писал(а):Ещё надо сделать .tostring/fromstring
А разве в numpy нет своего tostring?

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

Добавлено: 13 фев 2012, 16:29
dormouse
Есть. Думал целиком всю переменную image в файл кешировать, потом при очередном запуске gcodetools смотреть - не лежит ли случаем кеш с такими же переданными изначально параметрами? и если да, то вместо нового расчёта подтягивать с диска.
Тут некоторая логика подразумевается. Скорее не to/from string, а сравнение параметров и open() временного-долгосрочного между запусками файла. Что-то вроде библиотеки кешей.

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

Добавлено: 15 фев 2012, 13:13
dormouse
Похоже, заменю честный матричный фильтр на пару векторных. Слишком долго питону считать. Оптимизировать буду после. Причина - сейчас ускорение сходу видится примерно в 50 раз, но результат тоже будет недостаточно быстрым для комфортной работы.

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

Добавлено: 17 фев 2012, 00:05
Nick
Да...... сделал дофига... 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 КБ) 1011 скачиваний

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

Добавлено: 17 фев 2012, 09:29
NightV
напомнил анекдот
Приходит программист к пианистy – посмотреть на новый рояль. Долго ходит вокруг, хмыкает, потом заявляет: – Клава неудобная - всего 84 клавиши :D

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

Добавлено: 17 фев 2012, 11:12
dormouse
... зато две кнопки шифт Shift на педалях - ЭТО КЛАСС!!!

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

Добавлено: 17 фев 2012, 11:14
Nick
dormouse писал(а):... зато две кнопки шифт Shift на педалях - ЭТО КЛАСС!!!
:hehehe: надо себе такие же сделать. Кстати было бы прикольно, кнопку смены раскладки в качестве педали. В линухе кстати можно сделать так, что раскладка меняется _пока_ нажата клавиша.

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

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

Это всё не первоочередное, но вещь приятная. Со временем я сделаю.

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

Добавлено: 17 фев 2012, 21:10
Nick
А как траекторию изображал?
Кстати не думал о том, как можно симулировать обработку? Там нужен постоянный bool или можно как-то по другому?

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

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

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

Добавлено: 20 фев 2012, 13:30
Nick
dormouse писал(а):Главный смысл был ИМЕННО в постоянном bool blank=blank-tool. Иначе вся идея разрушалась. Сейчас можно это сделать на уровне мультика как с фиксированного вида, так и с произвольным движением камеры через внешний рендеринг в блендере. если надо - я могу сделать.
Можно просто сделать анимацию, но без рендеринга, анимацию можно и в блендере смотреть.
Но мне казалось, что bool d 3d работает, не очень хорошо. Правда это было лет 7 назад, когда я работал в 3ds.

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

Добавлено: 20 фев 2012, 16:09
dormouse
А... я имел в виду самодельный bool на основе depth-map, т.е. когда из одного кусочка поля-детали вычетается описывающий квадрат инструмента =)
Это для 3-D гигантская проблема. А для одного значения на каждый пиксель вертикальной проекции - плёвое дело.

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

Добавлено: 22 фев 2012, 12:36
dormouse
Сделал автоэкспорт в ASCII STL формат. Файлик 1mpix с трудом влезает на CD болванку в виде 3D модели. На каждый пиксель получается 6 треугольников модели в среднем.
Наверное лучше экспортировать в бинарный STL файл =)

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

Добавлено: 22 фев 2012, 12:52
Nick
Да, не кисло :)

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

Добавлено: 29 фев 2012, 15:41
dormouse
только начнёшь серьёзно что-то продвигать, как в точности по Стругацким природа запрещает. Неделю стою на месте и ещё одну похоже не сдвинусь.

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

Добавлено: 29 фев 2012, 16:48
Nick
В смысле времени не хватает или сложности в реализации?