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

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

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

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (182887 просмотров) <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 или загрузите предыдущие ревизии.

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

Добавлено: 09 авг 2010, 12:10
Nick

Ревизия 150

Добавил функцию paramenterize в постпроцессор.
Syntax:
parameterize() - Добавляет параметеризацию Gкода.
Если в gкоде есть несколько разных Feed'ов то добавится несколько параметров, по одному для каждого feed.
Также автоматически определяется возможность делать scale по осям в зависимости от наличия G17, G18 или G19.
Например, если есть только G17, то появится два параметра:
#10 = 1 (XY Scale factor)
#11 = 1 (Z Scale factor)
А если в Gкоде присутствуют несколько разных кодов из [G17,G18,G19], то появится только один параметр:
#10 = 1 (Scale factor)

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

Добавлено: 09 авг 2010, 14:16
dormouse
надо проверить 148 rev. (количество знаков)
я так же сейчас узнаю трансляцию из G02/03 формата в тот хитрый с диаметром.

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

Добавлено: 09 авг 2010, 15:55
Nick
Для количества знаков нужно написать round(4); в Additional post processor.
Нужно будет создать стандартные постпроцессоры... Они прописываются в inx.

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

Добавлено: 11 авг 2010, 08:59
Nick

Мне кажется, что пора готовить релиз Gcodetools v.1.6!

Что было в планах по Gcodetools v.1.6:

  1. Расширение для токарных станков
  2. Расширение для плоттерной резки
  3. Улучшение расширения для плазменной резки
  4. Добавление дополнительных опций экспорта:
    • Угол заглубления
  5. Добавление функции проверки сцены:
    • Выделение маленьких контуров (возможных артефактов area)
    • Проверка принадлежности инструментов
  6. Расширение для сверловки

Что было сделано:

  1. Расширение для токарных станков
  2. Расширение для плоттерной резки
  3. Улучшение расширения для плазменной резки (сделано на треть)
  4. Добавление функции проверки сцены:
    • Выделение маленьких контуров (возможных артефактов area)
    • Проверка принадлежности инструментов
  5. Расширение для сверловки

Что не было сделано:

  1. Улучшение расширения для плазменной резки (не сделано на две трети)
  2. Добавление дополнительных опций экспорта:
    • Угол заглубления

Что было сделано сверх планов (было и такое :)) :

  1. Постпроцессор

Что все таки нужно сделать до релиза Gcodetools v.1.6:

  1. Сделать утилиту автоматического обновления Gcodetools
    Добавлено: автоматическое обновление похоже не получится, т.к. для этого нужно писать в директорию /usr/inkscape/extensions/ а туда писать может только root или администратор в винде. Т.е. универсальный метод сделать сложно. Но можно сделать метод проверки есть ли обновления.
  2. Написать небольшие хелпы по новой версии
  3. Обновить страницы с описанием для русской и английской версий
  4. Добавить стандартные постпроцессоры
Релиз предлагаю предварительно назначить на 20-25 августа.

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

Добавлено: 12 авг 2010, 11:37
Nick
Добавил возможность авто нумерации файлов.
Теперь если в директории есть файл output_0001.ngc, то файл будет называться output_0002.ngc потом output_0003.ngc и.т.д.

inx изменен поэтосу нужно будет выполнить python create_inx.py.
PS launchpad сейчас наmaintenance, сделаю push позже.

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

Добавлено: 12 авг 2010, 16:59
dormouse
Оказалось, что не требуется преобразовывать G02/03. Точности знаков вполне достаточно для той интерпретирующей программы.

Надо доделать идею про вставку фрагмента из файла для смены инструмента. по аналогии с footer/header. при этом надо обязательно заменять какие-то placeholders из этого файла вида @@@placeholder1@@@ на переменные из кода программы. Без этого нельзя многие вещи реализовать.
На Perl я делал так: брал список всех существующих переменных в данный момент в программе (я не знаю, доступна ли такая возможность в Python) и после этого заменял все @@@placeholder@@@ вхождениями из программы. Это весьма безопасный способ в отличие от eval выражения регэкспа и т.п.

P.S. В принципе можно будет обойтись простейшим способом - заранее задать массив и только из него делать замены. Для наших практических целей этого достаточно.

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

Добавлено: 16 авг 2010, 10:49
Nick
Надо доделать идею про вставку фрагмента из файла для смены инструмента. по аналогии с footer/header. при этом надо обязательно заменять какие-то placeholders из этого файла вида @@@placeholder1@@@ на переменные из кода программы. Без этого нельзя многие вещи реализовать.
На Perl я делал так: брал список всех существующих переменных в данный момент в программе (я не знаю, доступна ли такая возможность в Python) и после этого заменял все @@@placeholder@@@ вхождениями из программы. Это весьма безопасный способ в отличие от eval выражения регэкспа и т.п.
Не совсем понимаю как это реализовать... Чтобы вставить в код что-то вместо @@@placeholder1@@@ нужно чтобы кто-то сначала вставил сам @@@placeholder1@@@ :think:. Кто будет его вставлять?

На счет eval вроде как все проще, в python.re нету флага eval.

А чем не подходит нынешняя реализация с параметром инструмента "tool change gcode" он потом вставляется перед каждой сменой этого инструмента, причем в него можно записать много строк.
0075 gcode tools tool change.png (4465 просмотров) <a class='original' href='./download/file.php?id=614&mode=view' target=_blank>Загрузить оригинал (48.49 КБ)</a>

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

Добавлено: 20 ноя 2010, 01:08
V0id
Я чтото не догнал как конвертер точки конвертирует, вроде есть соответсвующая вкладка, а в g-code никаких упоминаний не появляется.

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

Добавлено: 20 ноя 2010, 02:27
Nick
Хммм... точно не знаю, это Dormouse писал...

По идее, конвертер нужен был, чтобы из dxf точки брать...
Может если ты выделишь точки и сделаешь экспорт в Gcode, то они появятся.

Прикрепи сюда svg разберемся.

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

Добавлено: 20 ноя 2010, 04:52
V0id
Прикрепил. И еще вопрос по Inkscape: как поменять точку начала\конца в замкнутом контуре из нескольких точек?

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

Добавлено: 20 ноя 2010, 18:31
Nick
По идее, выбираешь контур, затем F2 для редактирования узлов, затем выбираешь нужный узел и нажимаешь кнопочку разбить узел на два не сязных. Тогда контур не поменяет геометрию, а начало и конец будут в нужном месте.
По svg еще посмотрю ...

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

Добавлено: 04 дек 2010, 14:55
de-nos
Выражаю благодарность авторам и всем, кто принимал участие в разработке и тестировании Gcode_tools.
Не дадите ссылочку на то, как использовать многопроходную обработку? В частности меня интересует послойная резка (т.е. выпиливание не за один раз, а за 2-3). И есть ли Gcode_tools сверловка?

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

Добавлено: 04 дек 2010, 16:10
Nick
Для многопроходной обработки задаешь заглубление в настройках инструмента (depth) и все. Программа сама создаст несколько проходов.
Сверловка есть через dfx points, но я с ней еще не разобрался :oops:.

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

Добавлено: 16 дек 2010, 21:11
beeduino
После недельного гугления по теме Ornamental Turning попалась ссылка на Gcodetools. Очень нравится - поздравления разработчикам!

Ornamental Turning заинтересовал после просмотра вот этих роликов - http://www.panix.com/~dgarrett/phpv1/index.php
Есть еще несколько сайтов, где на CNC оборудовании делается то, что раньше делалось на механических станках - так называемый Roseengine. В данном случае человек упоминает, что он эмулировал работу Roseengine.
Для плоской поверхности это похоже на работу инструмента Spirograph в Inkscape, а как для криволинейной боковой поверхности?
Вот ролик, показывающий оцифровку профиля - http://www.panix.com/~dgarrett/phpv1/in ... to=probing
И сразу наложение картинки на трехмерную фигуру.

Можно ли такого результата добиться с помощью Inkscape/Gcodetools?

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

Добавлено: 16 дек 2010, 22:02
Nick
В простейшем случае все просто, если проектировать на цилиндр, то, по идее, остается та же самая прямоугольная система, только вместо оси Y - будет ось A (поворотная ось).

Но с другими поверхностями сложней. Нужно придумывать схему....... Делать проекции......
И опять же вечный вопрос интерфейса, как задавать поверхность? Как задавать точки привязки узора?

На одном из видео человек пишет, что все делается на tcl скриптах, узнать бы об этом по-подробнее...

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

Добавлено: 16 дек 2010, 22:21
beeduino
Некие скрипты есть здесь - http://www.panix.com/~dgarrett/ngcgui/
Но это видимо не все. Вот еще патчи - http://www.panix.com/~dgarrett/stuff/
Вот еще есть программа - http://blog.alanbattersby.co.uk/softwar ... workbench/ - исходников похоже нет. На Ubuntu10.04 у меня запускается но графику не отрисовывает. На сайте куда то пропало оглавление - навигация усложнилась..
И вот другой вариант (без подробностей) - http://billooms.com/resourceOTLathe.html
В других местах упоминается использование коммерческих САМ программ с поддержкой режима OT (Ornamental Turning)

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

Добавлено: 16 дек 2010, 23:45
Nick
Есть одна идея, как это все можно реализовать на связке inkscape -blender, но сейчас нет сил думать завтра все подробнее опишу....

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

Добавлено: 29 дек 2010, 19:32
de-nos
Инструмент engraving-dev неправильно формирует gcode.
В файле
bug.svg
(14.43 КБ) 858 скачиваний
делаю гравировку буквы "л", в результате шпиндель уезжает далеко за пределы детали. Вот на этой строчке:
G03 X61.191611 Y58.064341 Z-1.278559 I20592.241225 J-41151.968089

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

Добавлено: 30 дек 2010, 00:37
Nick
Хммм.... странно у меня все в пределах нормы...
output.ngc
(8.53 КБ) 1039 скачиваний
Приложи свой ngc-файл.

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

Добавлено: 30 дек 2010, 00:48
de-nos
root писал(а):Хммм.... странно у меня все в пределах нормы...
output.ngc
Приложи свой ngc-файл.
Попробуй его исполнить. На 43 строке должно проявиться.
Твой ngc-файл у меня также исполняется (шпиндель уезжает за пределы).