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

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

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

Разработка Gcodetools

Screenshot-output.ngc - AXIS-4.png (182942 просмотра) <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: Разработка Gcode tools - плагин Inkscape для экспорта в

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

У меня с 44-ым релизом вовсе не работает. Файл прилагаю: открываем, щёлкаем на квадрате (это уже path). Tool diameter прописан как 4, Area/Area width ставим 15. Запускаем, получаем контур вовсе дублирующий. Ожидалось несколько (2mm, 6mm, 10mm, 14mm, 15mm)

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

Добавлено: 15 апр 2010, 18:14
Nick

Revision 46

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

Кстати, если захотим, чтобы все таки можно было создавать несколько инструментов/ор в одном слое нужно будет переместить active_layer_already_has_tool и active_layer_already_has_orientation_points в warnings из errors.

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

Добавлено: 15 апр 2010, 18:27
Nick

Ревизия 47

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

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

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

Добавлено: 15 апр 2010, 20:30
dormouse
Профи точно ПОФИГУ!

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

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

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

P.S. rev 47 что-то страшное с квадратом сделал. см.аттач.

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

Добавлено: 15 апр 2010, 21:36
Nick
Ctrl+J решает!
Все никак не могу разобраться с тем, как inkscape контур преобразует...

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

Добавлено: 16 апр 2010, 09:21
Nick
Нужно добавить поле смены инструмента для каждого инструмента, чтобы можно было сразу всю сцену обрабатывать.
Как бы его лучше обозвать?
"tool change"
"change tool"
"change Gcode"
...

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

Добавлено: 16 апр 2010, 09:55
dormouse
Ничего не понял :o

Процедура смены инструмента специфична ДЛЯ КАЖДОГО станка. Поэтому (как я ранее предлагал) - надо для смены только файл "changer" рядом с footer/header подкладывать, а в него передавать число-номер инструмента из таблицы (чтобы python regexp'ом заменил в этом файле номер инструмента на нужный и вставил содержимое всего этого файла в G-код с учётом замены всех вхождений вида @@@toolnumber@@@ на этот номер).

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

Добавлено: 16 апр 2010, 10:17
Nick
Ок, может я немного погорячился...
Каков Gкод смены инструмента?

ЗЫ

Ревизия 48

Немного по-колдовал с Area, теперь прямоугольник берет, вроде... :)
(Добавил проверку длины сегмента по которому вычисляется направление контура. Раньше, если контур замкнут + последняя точка задана явно появлялся либо ооочень маленький сегмент либо нулевой сегмент)

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

Добавлено: 16 апр 2010, 10:31
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".

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

Добавлено: 16 апр 2010, 10:37
Nick
По идее, значение параметра инструмента может быть любое, хоть на страницу текста....
Сейчас так сделано в стандартном инструменте "плазма" "до контура" и "после контура", там в плазме происходит подъем, поиск металла, подъем, затем плавное заглубление....

ЗЫ Нужно обсудить стандартный темплейт. Что в него добавить и как обозвать, и сколько их сделать (два для мм/дюйм, или еще для плазмы/гравировки/раскроя)?

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

Добавлено: 16 апр 2010, 11:03
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 на верхний слой, не-добавлении если уже есть в этом слое и на "если ничего не выбрано, то выбрать всё"? Это, похоже, очень облегчит новичкам путь. Уже нетерпится второй туториал мне писать. Надо по конкретике.

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

Добавлено: 16 апр 2010, 11:09
Nick
Ок, уговорил :).

С маленькими контурами нужно подумать, вероятно получится...
Может их сразу и удалять? (Ввести дополнительный параметр линейного размера баунда, или чего-то еще...)
Или, например, обводку делать толщиной инструмента, чтобы все было видно, и было видно, что вырежет?

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

Добавлено: 16 апр 2010, 11:14
dormouse
1. Чуть отредактировал предыдущее сообщение - перечитать.
2. Насчёт размера - показателем является как bounding box, так и общая длина контура. Что легче брать, то и выбираем. В реальной жизни невидно объекты порядка 5мм после Area. Их очень желательно раскрасить другим цветом. Одного этого будет достаточно (они все внутри selection после работы Area! другие трогать и перекрашивать не надо).

Эта проблема очень актуальна, т.к. я, принимая спец. меры для её исправления, всё равно одну крошку пропустил.

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

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

-----------

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

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

Для автоматического добавления инструментов/ор (далее просто инструменты) нужно:
  1. Изменить структуру функции effect, и вынести все рабочии функции в отдельные. Это давно напрашивалось, поэтому сделаю.
  2. Определиться когда добавляем контуры а когда орем, что ошибка:
    • если совсем нет инструментов - то добавляем + warning
    • если совсем нет инструментов - то добавляем + note
    • если есть инструменты, но не для всех контуров то добавляем + warning (просто)
    • если есть инструменты, но не для всех контуров то warning + ищем далее вниз (самое не простое)
    • если есть инструменты, но не для всех контуров то error (так сейчас)

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

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

Хотя мне казалось что 2.2. включает в себя 1.2. =)

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

Добавлено: 16 апр 2010, 12:06
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)" и потом делаешь замену любым скриптом.

Как такой вариант?

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

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

У EMC и т.п. обычно есть "tool table" - по номерам 1,2..n. Из этих соображений стоит добавить дополнительный параметр в tool description с названием "номер" (либо заменить name/id на чисто цифровой номер). Так что бы не делать проверку геометрии от слоя-к-слою, а только по "номеру" сравнивать. При этом под этими же номерами заводится tool.tbl для EMC или другой системы.

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

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

По поводу смены инструмента при смене параметров обработки:
На сколько это нужно?
На сколько критично создание двух инструментов с разными параметрами?
От чего зависит изменение параметров обработки?
Может быть создать еще одну библиотеку с параметрами обработки? :) (Тогда процесс создать ор -> создать инмтрумент -> создать параметры обработки -> создать контур -> не забыть все выбрать ->не забыть удалить лишнее -> не забыть нажать ctrl+shif+c -> не забыть нажать ctrl+shif+g -> не забыть все выбрать .... :lol: )

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

Добавлено: 16 апр 2010, 13:50
Nick
Еще нужно с хелпом разобраться. Он даже у меня глючит.
Как вариант, можно подробный хелп добавлять прямо в рисунок. Причем, туда же можно запихать клавишу создания темплейта, или в стандартный хелп добавить ор и инструменты.

И нужно полумать о релизе

Мы планировали дед лайн на сегодня. Но похоже придется пернест еще на неделю. Улучшать можно бесконечно, но нам нужен релиз. С прошолого релиза и так много чего изменилось/улучшилось.
Нужен релиз!

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

Добавлено: 16 апр 2010, 14:44
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 апреля