Разработка 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 (182897 просмотров) <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 »

Причина недовольства п.1 ?
Мне кажется, что это более чем логичный вариант. При текущем варианте (необходим OR и тулз) логично для новичка щёлкнув мышкой получить "хоть какой-то результат" вместо непристойной ругани.

У меня с 44-ым релизом вовсе не работает. Файл прилагаю: открываем, щёлкаем на квадрате (это уже path). Tool diameter прописан как 4, Area/Area width ставим 15. Запускаем, получаем контур вовсе дублирующий. Ожидалось несколько (2mm, 6mm, 10mm, 14mm, 15mm)
Вложения
area-error.svg
(10.23 КБ) 901 скачивание
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Revision 46

Ура п.2 решился просто и практически без проблем :).

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

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

Сообщение Nick »

Ревизия 47

Пофиксил scale в Area.
Казалось, что он делает area c единичным диаметром, т.к. scale был Zauto_scale a не 1/Zauto_scale.

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

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

Сообщение dormouse »

Профи точно ПОФИГУ!

Гениальное предложение от юзера: если НИЧЕГО не выбрано, то предполагать "выбрано всё".

Резюме для реальной жизни: открыли Inkscape, импортируем .ps/.pdf, зашли Area, нажали Apply.
Итог: раз не было tool, OR - они сделались автоматом по дефолту. Раз ничего не выбрано - работаем "по всем контурам" (не выбирая, разумеется, наши tool, OR в виде примитивов).

P.S. напоминаю - "профи это всё пофигу!".

P.S. rev 47 что-то страшное с квадратом сделал. см.аттач.
Вложения
err-2.svg
(16.4 КБ) 940 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

Ничего не понял :o

Процедура смены инструмента специфична ДЛЯ КАЖДОГО станка. Поэтому (как я ранее предлагал) - надо для смены только файл "changer" рядом с footer/header подкладывать, а в него передавать число-номер инструмента из таблицы (чтобы python regexp'ом заменил в этом файле номер инструмента на нужный и вставил содержимое всего этого файла в G-код с учётом замены всех вхождений вида @@@toolnumber@@@ на этот номер).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ок, может я немного погорячился...
Каков Gкод смены инструмента?

ЗЫ

Ревизия 48

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

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

Сообщение dormouse »

ещё разок: СПЕЦИФИЧНО для каждого станка.
У меня, например, это процедура на целую страницу: отъехать в точку смены инструмента, выдать табличку "выключите шпиндель и смените инструмент, как будет готова - жмите ОК" [M5 автоматом у меня не поддерживается], меняем иснтрумент, он едет в точку измерения длины инструмента, опускается по g38.2, измеряет её, вносит как коррективу через параметр EMC (не как G43), едет обратно в точку где прервался (только приподнявшись на дельту длины инструмента) и продолжает работу дальше как ни в чём не бывало....
У других станков это другая процедура
У третьих - вообще автомат одной инструкцией (своей) g-кода и т.п.

Таким образом единственным адекватным вариантом мне видится замена в файле шаблона одной переменной-плейсхолдера на конкретное значение из EMC (так же эта величина фигурирует для некоторых g-кодов, т.к. надо использовать M6 Txx....
-----------
Итог1: файл "changer" в котором единственный параметр - номер инструмента из таблицы для замены regexp'ом из питона (этого плейсхолдера может вовсе не быть, как например у меня - я обхода G40/G41/G42 неиспользую)

Итог2: сможем сделать вместо "This extension requires at least one selected path." выбирать ВСЕ видимые объекты (исключая tool-таблички и OR-стрелки и точки ?). Если объект "не path", то может тупо заливать его салатовым цветом (вроде как "ошибочный контур") и в туториале напишем - "если что-то залилось салатовым, попробуйте shift+ctrl+c) на нём сделать, т.к. он скорее всего не-path".
Аватара пользователя
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 »

я вообще в стандартный темплейт не верю. честно.

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

При первом заходе измерения после g38.2: #1000=#5063 (save reference tool length)
g30 (above switch)
g49 (measure without the last tool's offset)
g38.2 z-100 f30 (measure)
g0 z#1 (off the switch to #1 safe distance)
g43.1 k[#5063-#1000] (set new tool offset)
Могу предложить только "выдать табличку и подождать + заменить M6 T@@@toolnumber@@@" в качестве темплейта.

Попробовал заменить "This extension requires at least one selected path". Ревизия 48.

Возможно, надо ввести инструмент такого рода (пост-обработку после Area): найти все объекты (после разгруппировки) с малым размером (задавать или принять в 3мм), выкрасить их в красный и выделить selection'ом. Суть - в прошлый раз я пропустил одну "серую крошку-артефакт" после Area. Заготовка на 1.5 часа работы была испорчена.

Экспресс-тестирование показало, что пара имевшихся ранее ошибок Area исправлены ревизией 47. Поздравления!

P.S. Можем сконцентрироваться на автодобавлении tool/OR на верхний слой, не-добавлении если уже есть в этом слое и на "если ничего не выбрано, то выбрать всё"? Это, похоже, очень облегчит новичкам путь. Уже нетерпится второй туториал мне писать. Надо по конкретике.
Вложения
arterfact.png (3778 просмотров) <a class='original' href='./download/file.php?id=499&mode=view' target=_blank>Загрузить оригинал (31.38 КБ)</a>
artefacts.svg
(20.75 КБ) 851 скачивание
Последний раз редактировалось dormouse 16 апр 2010, 11:10, всего редактировалось 1 раз.
Аватара пользователя
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. Чуть отредактировал предыдущее сообщение - перечитать.
2. Насчёт размера - показателем является как bounding box, так и общая длина контура. Что легче брать, то и выбираем. В реальной жизни невидно объекты порядка 5мм после Area. Их очень желательно раскрасить другим цветом. Одного этого будет достаточно (они все внутри selection после работы Area! другие трогать и перекрашивать не надо).

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

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

Сообщение Nick »

Нужно ли делать толщину штриха для area равной диаметру инструмента?
  • Да, для всех контуров
  • Да, только для мелких
  • Нет
Что делать с мелкими контурами?
  • Выделять цветом
  • Выделять цветом и толщиной контруа
  • Удалять
ЗЫ Есть очень полезная функция Ctrl+F если есть объекты с определенными параметрами (например характерный цвет обводки), то очень просто их найти и изничтожить!

-----------

Просто и баунд и длина, вопрос что лучше?

------------

Для автоматического добавления инструментов/ор (далее просто инструменты) нужно:
  1. Изменить структуру функции effect, и вынести все рабочии функции в отдельные. Это давно напрашивалось, поэтому сделаю.
  2. Определиться когда добавляем контуры а когда орем, что ошибка:
    • если совсем нет инструментов - то добавляем + warning
    • если совсем нет инструментов - то добавляем + note
    • если есть инструменты, но не для всех контуров то добавляем + warning (просто)
    • если есть инструменты, но не для всех контуров то warning + ищем далее вниз (самое не простое)
    • если есть инструменты, но не для всех контуров то error (так сейчас)
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

>1. Нужно ли делать толщину штриха для area равной диаметру инструмента?
1.2. Да, только для мелких
>2.Что делать с мелкими контурами?
2.2.Выделять цветом и толщиной контура

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

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

Сообщение Nick »

Теперь по смене инструмента,

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

При первом заходе измерения после g38.2: #1000=#5063 (save reference tool length)
g30 (above switch)
g49 (measure without the last tool's offset)
g38.2 z-100 f30 (measure)
g0 z#1 (off the switch to #1 safe distance)
g43.1 k[#5063-#1000] (set new tool offset)
1. Это можно элементарно вставить.
2. В крайнем случае вставляешь "(Сменить на инструмент xxx)" и потом делаешь замену любым скриптом.

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

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

Сообщение dormouse »

я потерял суть. Я полагал, что смена инструмента должна происходить "сама собой" когда переходим на слой у которого отличаются скоростные (а не геометрические) характеристики из tool description (это, кстати, надо не забыть сделать!)ю

У EMC и т.п. обычно есть "tool table" - по номерам 1,2..n. Из этих соображений стоит добавить дополнительный параметр в tool description с названием "номер" (либо заменить name/id на чисто цифровой номер). Так что бы не делать проверку геометрии от слоя-к-слою, а только по "номеру" сравнивать. При этом под этими же номерами заводится tool.tbl для EMC или другой системы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Суть:
1. есть инструменты
2. у инструментов есть параметры
3. параметры могут быть любыми
4. мы хотим сделать смену инструмента
5. это можно сделать параметром "tool change gcode"
Т.е. если скрипт хочет поменять инструмент, то в Gcode дописывается параметр "tool change gcode", который может быть любым.

По поводу смены инструмента при смене параметров обработки:
На сколько это нужно?
На сколько критично создание двух инструментов с разными параметрами?
От чего зависит изменение параметров обработки?
Может быть создать еще одну библиотеку с параметрами обработки? :) (Тогда процесс создать ор -> создать инмтрумент -> создать параметры обработки -> создать контур -> не забыть все выбрать ->не забыть удалить лишнее -> не забыть нажать ctrl+shif+c -> не забыть нажать ctrl+shif+g -> не забыть все выбрать .... :lol: )
Аватара пользователя
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. физическое тело, которое меняется или проводятся сервисные работы с отключенным шпинделем.
2. параметры реза (заглубление на слой, скорость и т.п.)
Когда слой N3 режется с Zstep=1mm, а слой N2 с Zstep=2mm, то НИЧЕГО НЕ ДОЛЖНО МЕНЯТЬСЯ в плане M6 Txx и в плане остановки шпинделя. Когда происходит смена инструмента, то должна происходить масса действий + НЕОБХОДИМА связь между нашими инструментами и между tool.tbl в EMC/аналога в других системах.

Я предлагаю добавить самым незатейливым образом TT Number=1,2...n. И считать, что смена инструмента по схеме 1. происходит при изменении этого TT Number и по схеме 2. если величина TT Number между слоями не изменилась.

Релиз. Дата и что должно быть в нём.

НЕОТЛОЖНОЕ:
1)добавление OR/tool на верхний слой автоматом при вызове ptg/area/engraving
2)не добавление дубля OR/tool в этот же слой
3)"автовыделение" всех контуров за вычетом tool/OR если вообще ничего не выделено.

Как это случится, обычный пользователь сможет "в тупую" открыть файл и "сделать что-нибудь" (минуя 13 шагов :lol: )
Я думаю что такими темпами это день+3 дня отладки, пару бета-тестеров привлеку. Предлагаю отталкиваться от пятницы.

Желательно сделать по самому простейшему варианту:

Выделение цветом и жирным контуром Area-ошмётков можно отложить "через раз", если это сложно писать. Хотя они пакостят удивительно сильно (полностью портят изделие без возможности исправить) :cry:

Можно отложить без проблем:
все идеи насчёт смены инструмента, т.к. они затрагивают реально малую часть людей и могут вовсе быть проделаны другими методами
всё связанное с невидимостью слоёв

Дата релиза

22 апреля
Ответить

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