Разработка 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 (182848 просмотров) <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 или загрузите предыдущие ревизии.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Необходимо чтоб замена этим параметром осталась в каком-то виде для последующей коррекции. Бывает такое, что компьютер со станком это не тот же самый компьютер на котором оператор Inkscape работает. Это могут быть разные люди =)

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

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

Сообщение Nick »

dormouse писал(а):Необходимо чтоб замена этим параметром осталась в каком-то виде для последующей коррекции. Бывает такое, что компьютер со станком это не тот же самый компьютер на котором оператор Inkscape работает. Это могут быть разные люди =)

*сегодня должны забрать муфты. Их растачивать надо?
Хммм.... в принципе.... можно будет потом сделать так, чтобы в header дописать параметры всех используемых инструментов...
А сколько можно параметров заводить? Есть ли какие-нибудь на них ограничения (ограничения на названия)?

* Ура :). Да, нужно расточить... Нужный мне размер - 6,35мм на 8мм.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

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

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

Сообщение Nick »

Фууххх.... Пофиксил, сто-тысяч багов, теперь вроде работает :)! Осталось исправить оставшиеся полмиллиона и золотой ключик у нас в кармане!

Ревизия 42

  • Переделана работа со слоями. Теперь перед основными функциями плагин пробегается по всей сцене ( get_info(self) ) и собирает информацию в dictionary self.selected_paths, self.tools, self.orientation_points ... и list self.layers (который хранит порядок слоев). В последствии, информация берется из этих словарей.
  • Инструменты ищутся по слоям, сначала в том слое в котором находится обрабатываемый контур, а затем во всех слоях сверху.
  • Новая функция self.error(self, s, type_= "Warning") - берет сообщение и тип, в зависимости от типа выбирает что делать. Тип это строка, self.error смотрит в какой из переменных notes, warnings или errors лежит тип, и на основе этого принимает решение, что делать дальше.
  • Практически все функции подверглись изменениям в связи с новой схемой работы со слоями/инструментами/ОР.
  • Добавлено много warning-ов error-ов и note-ов.

Можно срочно начинать тестировать :D !

ЗЫ с полным заголовком для всех инструментов гляну чуть позже.
PSS вот что изменилось с последней рабочей версии: http://bazaar.launchpad.net/~gcodetools ... e_revid=38
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

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

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

Сообщение Nick »

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

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

Сообщение Nick »

:idea: Нам нужна локализация!

Локализация для нас это, для начала, перевод английского интерфейса на русский язык.
В linux существует штатная система для переводов приложений на разные языки.
Как она работает: есть библиотека gettext, в ней есть функция gettext (обычно ее для удобства сразу же обзывают "_()"). Эта библиотека берет в системных каталогах "/usr/share/lacale/[название локали]" файлы переводов. Эти файлы находятся в формате .mo. К сожалению, .mo не текстовый формат, но, к счастью, есть множество спец редакторов. Также есть специальные парсеры исходного кода, например, для питона pygettext, которые вытаскивают из исходного кода все вызовы функции _('message') и составляют специальные .pot файлы, из которых можно импортировать все сообщения, которые нужно перевести.
Скриншот редактора переводов:
-home-nick-Design-cnc-club.ru-gcodetools-gcode_tools.po (изменён)-1.png (3662 просмотра) <a class='original' href='./download/file.php?id=493&mode=view' target=_blank>Загрузить оригинал (92.46 КБ)</a>
Большинство сообщений в gcode tools уже используют функцию gettext = _(), т.е. для перевода интерфейса необходимо создать .mo файлы с переводами!
Единственное но! Текст сообщения используется как идентификатор для перевода, но, учитывая наше знание английского, эти идентификаторы будут меняться, соответственно придется менять все .mo файлы переводов. Есть конечно безумная идейка, писать все сообщения на русском а английский перевод делать при помощи локалей, но это уже экстрим :).

Вопросы

Как это работает в windows?
Что находится в каталоге Programm files/inkscape/share ? Есть ли там локали с переводами?
Что делать с нашим английским :)?
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Для примера содержимое папки ru:

Код: Выделить всё

"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\atk10.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\gettext-runtime.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\gettext-tools.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\glib20.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\gtk20.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\gtk20-properties.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\libiconv.mo"
"C:\Program Files\Inkscape\share\locale\ru\LC_MESSAGES\popt.mo"
С нашим английским ничего делать не надо. Надо сделать "как можем сейчас", исправлять должны люди-специалисты "постепенно после".

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

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

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

Сообщение Nick »

dormouse писал(а):Много направлений удерживать одновременно сложно. В некоторых проектах выбирают координатора, который К.О. "координирует", а сам ничего не делает =)
Возможно, нам надо сделать так же. Вдруг кандидатура есть? Пока что-то отлаживаешь, правишь, или разрабатываешь идею на бумаге - сложно тратить время на донимание народа по конкретным проблемам....
Согласен, но пока некого особо координировать... Есть всего два человека кто этим занимается... Нужны кадры :)...

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

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

Сообщение dormouse »

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

1. Я убедился, что НЕОБХОДИМО кроме warning'ов автоматом создавать Orientation points и Tool/default tool. Очень сложно пользователям каждый раз это вводить. Люди вначале пугаются. Долго надо объяснять и уверять, что "надо сделать так как пишет". Если мы определились, что алгоритм таков: если нет tool/OR ни в одном слое - ругаться warning'ом "Note: default tool(Orientation points) was added to the topmost layer" и добавлять соответственно на самый верхний [это делать при каждом вызове pgt/area/engraving]. Cамый верхний tool/OR распространять на верхние слои, потом вниз до следующего или до самого нижнего слоя (чтоб работало: 3 слоя, tool в первом, OR во втором).
Итог:
a)если вызываем ptg/area/engraving то проверяем есть ли вообще tool/OR: НЕТ=>делаем дефолтные в самом верхнем слое.
b)для определения tool/OR для данного слоя вначале идём вверх, если нет до самого верха, то вниз. [раз мы дошли, до п.b), то гарантированно отработал п.a) и где-то tool/OR точно есть!]
c)если вызываем вкладку tool/OR то кнопка Apply не должна срабатывать, если в данном слое уже есть соответственно tool/OR [т.е. создавать с тем же значением Z, т.к. этот режим только для "продвинутых"]

2. В последней ревизии Area radius игнорирует настройки инструмента и предполагает tool diameter=1

3. Если это технически возможно, то очень желательно сделать чтобы после работы OR/tool вкладок восстанавливался selection тех же контуров. То, что выделение "сбрасывается" - "бесит" пользователей. проверено.

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

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

Сообщение Nick »

a)если вызываем ptg/area/engraving то проверяем есть ли вообще tool/OR: НЕТ=>делаем дефолтные в самом верхнем слое.
b)для определения tool/OR для данного слоя вначале идём вверх, если нет до самого верха, то вниз. [раз мы дошли, до п.b), то гарантированно отработал п.a) и где-то tool/OR точно есть!]
c)если вызываем вкладку tool/OR то кнопка Apply не должна срабатывать, если в данном слое уже есть соответственно tool/OR [т.е. создавать с тем же значением Z, т.к. этот режим только для "продвинутых"]
ммммм..... в принципе, все так, но имхо, если что-то не по плану (несколько тулзов/ор или их нет совсем) нужно выдавать ошибку, ибо рискуем как минимум загубить деталь, как максимум загубить станок... Поэтому, я считаю, что ругаться нужно на все.
Кстати, инструменты и ор можно копировать при помощи Ctrl+C Ctrl+V или Drag+Space.

2. С Area сейчас гляну...

3. Посмотрим, что можно сделать

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

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

Сообщение dormouse »

Реальный сценарий:
1. рисует пользователь квадрат
2. жмёт Area/apply. Получает "нафиг, не выбран путь" (надо shift+ctrl+c, догадаться он об этом не может! Пусть догадался.)
3. "нафиг, нет тулз"
4. Жмёт tools/apply
5. выбирает area, жмёт apply, "нафиг, не выбран контур"
6. выбирает контур, жмёт apply "нафиг, нет OR"
7. переходит на OR, жмёт Apply
8. выбирает контур, жмёт Apply машинально (получает два OR) - ничего не происходит
9. переходит на Area, жмёт apply "не выбран контур"
10. выбирает контур "нафиг, два OR"
11. долго :shock: стирает одну из OR /либо всё заново делает
12. жмёт Apply "нафиг, не выбран контур"
13. выбирает контур, жмёт Apply
14. Получает оффсеты как-будто 1мм tools diameter установлен.
юзер счастлив :lol:
P.S. Порядок чуть неточен (пишу по памяти), но именно столько времени это всё заняло!

Мои предложения ещё разок:
Предложение 1: если ptg/area/engraving вызвали и нет ни одного вообще tool'за и ни одного OR, автоматом добавить их на верхний слой.
Предложение 2: в процедуру добавления tool/OR ввести ограничение "не добавлять в текущий слой, если уже есть в нём" (Несколько инструментов с порядком выбора по Z-глубине "для продвинутых", возможно это ВРЕДНЫЙ режим, т.к. допускает непредсказуемые ошибки! Лучше вовсе ввести ограничение Один слой=Один инструмент. Хочешь несколько - жонглируй слоями.)
Последний раз редактировалось dormouse 15 апр 2010, 17:39, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

:lol: У меня тоже так выходит...
Может добавить default svg в архив, где сразу будет тул и ор?


На счет авто добавления тула и ор, имхо не правильно их стразу добавлять, т.к. пользователь должен понимать, что он делает... Нужен нормальный ман и тутор и видео и :beer: :beer: :beer: и тогда пользователь сразу все поймет :)

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

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

Сообщение Nick »

Проверил area еще раз - все нормально!
Кстати, сделал все за один Area - инструменты и контуры в разных слоях.
gcode_pocketing_0038.png (3648 просмотров) <a class='original' href='./download/file.php?id=496&mode=view' target=_blank>Загрузить оригинал (114.46 КБ)</a>

Ревизия 44

Исправлен баг, когда выполняется area для разных слоев одновременно :).

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

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

Сообщение dormouse »

Насчёт default.svg - мысль достойная, но больше всего мне нравится затея с автодобавлением OR и tool на верхний слой. и НЕ добавлением того и другого если они уже есть.

Z-сортировку (пока) предлагаю не использовать. Она ОЧЕНЬ смущает. Люди НЕ ХОТЯТ пользоваться из-за этих 13 шагов.

Ещё раз предложения:
1. ptg/area/engraving: добавить tool/OR на верхний слой
2. в процедуре добавления tool,OR не добавлять если уже есть в этом слое
3. если контуры "не path", автоматом вызывать shift+ctrl+c
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

dormouse писал(а):1. ptg/area/engraving: добавить tool/OR на верхний слой
2. в процедуре добавления tool,OR не добавлять если уже есть в этом слое
3. если контуры "не path", автоматом вызывать shift+ctrl+c
2. Полностью согласен!
1. Не совсем.
3. ИМХО не выйдет :(... Shift+Ctrl+C это внутренний механизм inkscape и из расширений он не доступен :(.
Ответить

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