Страница 17 из 39
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод
Добавлено: 07 дек 2009, 11:39
Nick
Разработка Gcodetools
Эта ветка посвящена разработке
Gcodetools, плагина для векторного редактора
Inkscape, позволяющего конвертировать кривые из Inkscape в Gкод, используя круговую и линейную интерполяцию.
Описание работы, установка, помошь и уроки по плагину можно найти в теме:
Gcodetools - plug-in Inkscape для экспорта в Gcode
На данный момент ведется работа над Gcodetools 1.7
Что мы хотим увидеть в новой версии:
- Улучшение расширения для плазменной резки
- Добавление дополнительных опций экспорта:
- Улучшение функции обработки площади
- Угол заглубления
- Расширение для сверловки
Требуются
- Тестеры
- Разработчики
- Помощь в технических аспектах по работе станков и обработке материалов
- Новые идеи
Последняя версия
Исходный код находится на launchpad.net. Получить последнюю версию при помощи bazaar можно так:
Последнюю версию можно загрузить через 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 для экспорта в
Добавлено: 06 апр 2010, 21:48
Nick
Я нашел причину по которой координаты Z полезно вписывать в ОП (ОП=orientation point)! Таким образом можно сохранять разные настройки для разных деталей. Если поместить разные детали в разные слои, тогда можно в каждый слой добавить свои ОП если в одном слое менять их порядок.
Теперь я полностью с тобой согласен

!
Давайте что-нибудь по-реализуем...
-----------------
В процессе реализации подумал, что не плохо бы всетаки оставить поля ОП. Т.к. в этом случае их значения сохранятся при будущих запусках. По крайней мере оставить хотя бы координаты Z. Например, если пользователь все время режет из 25мм фанеры, так ему будет гораздо удобнее, чем каждый раз набивать -25 на рисунке.
Может оставить хоть что-то?
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 06 апр 2010, 23:32
mr.Iceman
root писал(а):Нужно найти референсного юзера и на нем проводить испытания

!
Пока у меня есть немного свободного времени, я с удовольствием буду выступать в этой роли.
Прошу прощения у почтенного dormouse'а, если мои слова насчет языка документации показались излишне резкими.
Я просто стараюсь быть "референсным". По моему скромному мнению, среднестатистический российский пользователь CNC-станка недостаточно владеет английским языком для того, чтобы прочитать и осмыслить с первого раза предложенное руководство пользователя по гравировке. Лично я начал и бросил читать инструкцию по гравировке - слишком сильно надо напрягаться, чтобы понять, в чем "изюминка", и что надо делать. Я лучше Арткамом, так привычнее... Очень не хватает краткого вступления к этому руководству, в котором-бы просто и доходчиво было-бы написано, что такое "гравировка", чем она отличается от других режимов работы плагина, и в чем заключается технология работы. Собственно, tutorial на этом форуме очень хорошо и доступно написан, и его можно было-бы взять в кач-ве образца...
В общем, с Вашего позволения, я не буду лезть в ход разработки, а буду выступать именно в роли тупого "референсного юзера" и реагировать буду именно так, так реагирует обычный юзер.

Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 07:53
Nick
mr.Iceman писал(а):
Пока у меня есть немного свободного времени, я с удовольствием буду выступать в этой роли.
Замечательно! И сразу первый вопрос:
Что делать с полями во вкладке orientation?
- убрать
- оставить
- оставить только для оси z
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 08:34
dormouse
В каждом слое рисуем вектор O(3)R(3) получаем положение и толщину детали. Для каждого контура надо брать его слой и искать инструмент, OR вектор. Если в текущем слое нет, идти "вверх" до победного (они могут в разных слоях встретиться). Так очень удобно получается работать с многоуровневой деталью.
Для dxf в своё время я это реализовывал в виде копии в каждом слое - не очень удобно, но вполне можно работать. Переделывать потом для "восходящего поиска в стопке слоёв" я не стал. в dxf всё записывалось в название слоя: {номер инструмента, Z start, Z step, количество проходов, глубина среза за проход, коэффициент для скорости, "по часовой или против часовой" обходить контура, идти "по контуру/справа/слева"}
Так же порядок работы обязательно должен быть по слоям - т.к. вначале порой надо вырезать поверхность детали, а после её же вырезать той же фрезой по контуру (чтоб выпала).
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 09:41
Nick
Т.е. нужно пересмотреть порядок обработки.
-----
Предлагаю обозначить дедлайн для релиза. И обозначить что мы хотим/можем в нем увидеть.
Предлагаю:
Дедлайн 16 апреля
До завтра (8 апреля) закрыть вопрос со списком необходимых доработок.
Что необходимо доделать:
- Проверить грамотность английского. (Постараюсь подтянуть коллег из английских форумов)
- Решить вопрос с точками ориентации.
- Добавить "ругалки" на пользователя если нет инструмента, точек ориентации или если повторно выполняется процедура добавления инструмента, ОП.
- Сделать порядок обработки по слоям.
- ... (вопрос открыт до 8 апреля)
Предлагаю следующие вопросы отложить до выпуска релиза
Т.е. заниматься этими вопросами только в рамках обсуждения но не реализации:
- Поиск инструмента для каждого контура в отдельности (т.к. имхо есть спорные вопросы)
- Разработка любых новых функций
- Остальные вопросы не вошедшие в первый список.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 10:27
dormouse
Мои предложения:
1. Все туториалы вложить в bzr, страницы на сайте обновлять из него потом
2. Нарисовать туториал по O(2)R(2) как плоская картинка переходит в плоскую, повёрнутую+отмасштабированную и добавляется Zstart Zend для придания объёма.
3. С точками ориентации остановиться на O(3)R(3) по умолчанию предполагая O'R'→ребро a'D' либо O(2)R(2)→ребро A'D' и прицепленные свойства слоя [предпочтительный вариант, можно будет просто слои скопировать в другой документ и сразу всё заработает!].
4. Порядок слоёв в layers = порядок работы с ними. При этом надо чтобы учитывалась "видимость" слоя.
5. Мой старый путь (текстовое поле или имя слоя) в котором указывается номер инструмента мне больше нравится, чем копия инструмента в каждом слое (предположим три слоя - 1,2,3. Если tool_001 для слоёв 1,3 и tool_002 для слоя 2, то tool_001 придётся целиком копировать на слои 1,3. Возможно отдельная библиотека лучше и на листы только номер надо помещать).
6. Обсудить необходимость "свойств слоя". В таком случае легко можно будет убрать разночтения в O'R' Vs O'R'_{xy}. Скажем O(2)R(2) и текстовое поле к нему {Zstart, Zmax, Zstep (последний шаг переменный), tool_n1, tool_n2, tool_n3} Все свойства - каскадно переопределяемые.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 11:05
Nick
dormouse писал(а):Мои предложения:
1. Все туториалы вложить в bzr, страницы на сайте обновлять из него потом
2. Нарисовать туториал по O(2)R(2) как плоская картинка переходит в плоскую, повёрнутую+отмасштабированную и добавляется Zstart Zend для придания объёма.
3. С точками ориентации остановиться на O(3)R(3) по умолчанию предполагая O'R'→ребро a'D' либо O(2)R(2)→ребро A'D' и прицепленные свойства слоя [предпочтительный вариант, можно будет просто слои скопировать в другой документ и сразу всё заработает!].
4. Порядок слоёв в layers = порядок работы с ними. При этом надо чтобы учитывалась "видимость" слоя.
5. Мой старый путь (текстовое поле или имя слоя) в котором указывается номер инструмента мне больше нравится, чем копия инструмента в каждом слое (предположим три слоя - 1,2,3. Если tool_001 для слоёв 1,3 и tool_002 для слоя 2, то tool_001 придётся целиком копировать на слои 1,3. Возможно отдельная библиотека лучше и на листы только номер надо помещать).
6. Обсудить необходимость "свойств слоя". В таком случае легко можно будет убрать разночтения в O'R' Vs O'R'_{xy}. Скажем O(2)R(2) и текстовое поле к нему {Zstart, Zmax, Zstep (последний шаг переменный), tool_n1, tool_n2, tool_n3} Все свойства - каскадно переопределяемые.
1. Поддерживаю.
2-3.
По точкам ориентации нужно решить следующие вопросы:
- Оставить ориентацию по трем точкам как опцию или нет?
Мое мнение, ориентацию по трем точкам оставить стоит, но в качестве опции.
- Для двух точек добавить отражение или нет (в виде checkbox)?
Я думаю, что не нужно, т.к. это не будет отражено на рисунке.
- Какие поля оставить на форме?
Я считаю, что нужно оставить значения для Z (чтобы они автоматически подставлялись в текст на рисунке и только).
И, если первый вопрос решится положительно, выбор количества точек ориентации
4. Просто нужно идти по выделению сверху вниз и все.
5. А нужно ли контуры разносить на разные слои, если они обрабатываются одним инструментом?
6. Тут нужно долго обдумывать... Пока не видно особой выгоды...
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 12:33
dormouse
root писал(а):Оставить ориентацию по трем точкам как опцию или нет?
Если цель scaleX<>scaleY - оставить как опцию, либо (т.к. это в любом случае ненаглядно) добавить к вектору поля "x/y, mirror"
root писал(а):Какие поля оставить на форме?
Надо чётко выработать разницу между полями "дефолтными для создания какой-то характеристики" и "влияющими на конечный результат непосредственно при нажатии Apply". Поля первой категории - любые (хоть все, хоть ни одного, т.к. потом в любом случае можно инструментом "текст" отредактировать). Поля второй категории - я таких (пока) не вижу.
root писал(а):А нужно ли контуры разносить на разные слои, если они обрабатываются одним инструментом?
Стоит, поскольку инструмент один, а глубина и количество проходов - разные и РАЗНЫЙ ПОРЯДОК обработки (вначале сделать изделие, а после "вырезать" его из заготовки).
P.S. Я всегда за "единственный" подход. Т.е. если есть OR, то только из него брать. Если есть tools library, то только ссылки на неё и т.п.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 13:47
Nick
dormouse писал(а):Если цель scaleX<>scaleY - оставить как опцию, либо (т.к. это в любом случае ненаглядно) добавить к вектору поля "x/y, mirror"
Т.е. оставляем как опцию
Надо чётко выработать разницу между полями "дефолтными для создания какой-то характеристики" и "влияющими на конечный результат непосредственно при нажатии Apply". Поля первой категории - любые (хоть все, хоть ни одного, т.к. потом в любом случае можно инструментом "текст" отредактировать). Поля второй категории - я таких (пока) не вижу.
Согласен. Вообще, на результат Apply должны влиять все поля на выбранной вкладке + поля нефункциональных вкладок (Опции, Параметры и Помощь

).
Как таковые поля вкладки orientation влияют на кнопку Apply, если она активна. Возможно, нефункциональные вкладки нужно как-то выделить...
Я предлагаю оставить для только для Z.
Стоит, поскольку инструмент один, а глубина и количество проходов - разные и РАЗНЫЙ ПОРЯДОК обработки (вначале сделать изделие, а после "вырезать" его из заготовки).
Ок подумаем, хотя для некоторых частей заявленного достаточно перемещения контура вверх вниз в одном слое.
ИМХО может быть не очевидным поиск инструмента в других слоях...
P.S. Я всегда за "единственный" подход. Т.е. если есть OR, то только из него брать. Если есть tools library, то только ссылки на неё и т.п.
Абсолютно согласен! Ибо нех!

Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 14:47
dormouse
scaleX<>scaleY
. Надо ещё раз объяснить для самого непонятливого человека смысл этой процедуры. Если это "сделать прямоугольник другого размера" или "растянуть картиночку", то работать это будет только для Path-to-gcode. Для Area/Engraving траектория сломается, т.е. либо надо исходные кривые подвергнуть этому сплющивающему преобразованию и после запускать Area/Engraving либо писать заново Area/Engraving c расчётом на эллиптическую форму фрезы.
3 группы настроек
1. Настройки (Help, Options, Preferences)
2. Создающие какие-то действие на рабочем листе (Area, Orientation, Tools)
3. Делатели g-кода (Path-to-Gcode, Engraving)
Можно попробовать им либо буковку в закладке назначить, либо разные цвета либо ещё как-то разделить. И расставить в указанном порядке, т.к. сейчас это перемешано =)
OR вектор и настройки слоя
Сейчас почти всё вынесено из формы и внесено на лист. Конкретно: OR-вектор даёт масштаб, нулевую точку, глубину и старт по Z. Свойства инструмента добавляют к этому шаг по Z, формы фрез, скорости вертикального и горизонтального реза, формулу врезания инструмента.
Фактически остаются: {параметричность кода, параметры дуг, биарков и т.п., единицы выходного файла, пути}.
На мой взгляд это правильный путь - разделить характеристики изделия (и внести их на лист) и характеристики вида "куда класть файл" и "на каком станке делать".
Для сложной детали очень неплохо иметь разные слои (задают OR-вектор и фрезы каскадно) с возможность не обрабатывать "невидимые" , в каждом слое порядок контуров - только порядок их обработки.
P.S. Как идеалогически правильно сменить направление обхода контура по часовой/против часовой стрелке? Есть ли в inkscape способ нумеровать понятным образом вершины? (К примеру box--shift-ctrl-c--path-to-gcode выдаст контур против часовой стрелки. Очень хотелось бы видеть его по часовой, т.к. стандарт вращения фрез - по часовой).
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 15:15
Nick
dormouse писал(а):
P.S. Как идеалогически правильно сменить направление обхода контура по часовой/против часовой стрелке? Есть ли в inkscape способ нумеровать понятным образом вершины? (К примеру box--shift-ctrl-c--path-to-gcode выдаст контур против часовой стрелки. Очень хотелось бы видеть его по часовой, т.к. стандарт вращения фрез - по часовой).
Контур -> развернуть
На счет остального, в принципе согласен, в процессе реализации нужно будет учесть...
ЗЫ Скоро выложу новую ориентацию...
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 15:22
dormouse
Развёртывание контура работает. Проследить направления можно только при помощи "прогона" в EMC на скорости 10x? Никаких встроенный средств вроде стрелок-хелперов не предусмотрено? (или экстеншн, который отрисует эти направления во временный слой ? )
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 15:30
Nick
dormouse писал(а):Развёртывание контура работает. Проследить направления можно только при помощи "прогона" в EMC на скорости 10x? Никаких встроенный средств вроде стрелок-хелперов не предусмотрено? (или экстеншн, который отрисует эти направления во временный слой ? )
Параметры обводки -> Маркер конца / начала / середины - ставишь любую End стрелку.
Может есть еще какие-нибудь вопросы

? Если есть их полезно будет в фак вынести...
Ревизия 35
Добавлена двух точечная ориентация. + Убраны некоторые поля...
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 16:10
dormouse
Волшебный метод. Рисуем много всего, потом всё выделяем, shift+ctrl+c, всем разом маркер. далее переворачиваем нужные. Спасибо!
Собственно, не так много и осталось. Начать и кончить.
P.S. порядок вкладок менять будем?
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 16:14
Nick
P.S. порядок вкладок менять будем?
Есть конкретное предложение? Ибо мне более менее по-барабану

.
Нужно только учесть, что при первом запуске плагина отображается крайняя правая вкладка.
Полезная фишка: стили можно копировать таким образом выделяем откуда копировать Ctrl+C, выделяем куда копировать Ctrl+Shift+V. (Маркеры тоже скопируются.)
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 16:44
dormouse
Я несколько намучился с двойственной природой обводки в Inkscape: обводка НЕ ВЛИЯЕТ на размер объекта при Create tiled clones, создании объекта, transformation. ВЛИЯЕТ при изменении размеров уже имеющегося объекта через верхнюю панель, является процентом от длины линии при масштабировании.
Вопросы:
1. можно ли отключить масштабирование обводки при изменении размеров объекта?
2. как можно задать(узнать?) точку относительно которой будет осуществляться поворот? Object-transform-rotate.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 16:53
Nick
1. Ctrl shift p и ищем искомое.
2. Нажимаем на объект чтобы появились стрелки вращения, в центре объекта появится крестик, вокруг него будет вращаться объект. Крестик можно перемещать. Также можно настроить снеппинг вращения, он включается при нажатом Ctrl.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 17:11
dormouse
Спасибо, оба метода работают (Transforms→Scale stroke width). Так я смогу туториал нарисовать, да и работать можно будет.
Ещё вопрос - есть ли переключатель для верхней строки (панель "Change" W: H: Rx: Ry: при рисовании Box меняется на безымынную c кучей кнопок и X Y W H) размера объекта "с/без обводки", или каждый раз надо обводку выключать принудительно, запуская Ctrl+shift+F→stroke paint→X ?
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 17:31
Nick
dormouse писал(а):Спасибо, оба метода работают (Transforms→Scale stroke width). Так я смогу туториал нарисовать, да и работать можно будет.
Ещё вопрос - есть ли переключатель для верхней строки (панель "Change" W: H: Rx: Ry: при рисовании Box меняется на безымынную c кучей кнопок и X Y W H) размера объекта "с/без обводки", или каждый раз надо обводку выключать принудительно, запуская Ctrl+shift+F→stroke paint→X ?
По-моему нет. В одном случае ты пользуешся инструментом бокс, который умеет работать только с боксами, в другом это общий масштаб, который применим к любому объекту.
Как вариант, но плохой, можно не делать обводку, а редактировать все в draft моде. (Ctrl + Num5). Но это плохой вариант.
Re: Разработка Gcode tools - плагин Inkscape для экспорта в
Добавлено: 07 апр 2010, 20:10
Nick
1. можно ли отключить масштабирование обводки при изменении размеров объекта?
Кстати для этого есть кнопочки в панели инструментов, слева 4 кнопки.
Ещё вопрос - есть ли переключатель для верхней строки (панель "Change" W: H: Rx: Ry: при рисовании Box меняется на безымынную c кучей кнопок и X Y W H) размера объекта "с/без обводки", или каждый раз надо обводку выключать принудительно, запуская Ctrl+shift+F→stroke paint→X ?
Нашел решение!
https://bugs.launchpad.net/inkscape/+bug/452102
Вкратце, Настройки Inkscape (Ctrl+Shif+P) → Инструменты → Используемая площадка (BB)→ Геометрическая площадка (BB).