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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Следующее направление разработки

Можно выбрать до 5 вариантов ответа

 
 
Результаты голосования

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

Сообщение Nick » 07 дек 2009, 11:39

Разработка Gcodetools


Разработка Gcodetools - плагин Inkscape для экспорта в Gкод Screenshot-output.ngc - AXIS-4.png

Эта ветка посвящена разработке 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.team/gcodetools/develope/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 или загрузите предыдущие ревизии.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение Nick » 26 мар 2010, 19:14

Пункт два и пункт один требуют хорошей процедуры оффсета. Без нее ничего не получится. Оффсет самая сложная процедура из тех, что я писал, и мне так и не удалось вывести ее на нормальный уровень. Кстати как и неудалось это сделать комманде разработчиков inkscape.
Если написать действительно хороший оффсет, при этом желательно, чтобы он работал достаточно быстро. То все остальные задачи решаться более менее просто.
То что написанно сейчас для гравировки, во-первых, подглючивает, во-вторых работает не совсем правильно.
Работает не правильно, т. к. я схалявил и не сделал клиппинг. Клиппинг это обрезка ненужных частей контура. Когда делаем оффсет острого угла, точки сегментов которые находятся близко к углу меняются местами и траекория пересекает сама себя. Это место нужно отрезать. Также при больших офсетах нужно проверять и другие сегменты. Отдельный случай, когда кривая пересекает сама себя, там нужно делать офсет в две стороны и выполнять клиппинг двумя кривыми.
Для грамотного построения клиппинга нужна функция поиска пересечения двух кривых безье третьего порядка. Это дает систему из двух кубических уравнений от двух независимых переменных, в общем случае она не решается, и может иметь до 9 вещественных корней. Нужно решать вычислительными методами. Для этого нужно как-то отделить корни, самый простейший вариант накидать точек в обе кривые, но не будет уверенности, что найдены все корни. И сложность алгоритма как минимум О(n^2*m^2) где n - количество сегментов, а m количество начальных приближений.

Домой приеду нарисую картинок, чтобы стало еще страшнее :twisted: !
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение Nick » 26 мар 2010, 20:53

Вот пара картинок:
Здесь нужно удалить красный треугольник.
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод gcode_tools_offset_0026.png

Тут нужно добавить дугу (оффсет наружу):
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод gcode_tools_offset_0027.png

Тут вобще хитрая ситуация, контуров становится два, их нужно грамотно разделить. (Вообще их становится не два, а три, один инкскейп правильно похерил )
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод gcode_tools_offset_0028.png

А вот ситуация когда у двух сегментов девять точек пересечения:
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод gcode_tools_offset_0029.png


Оффсет это ад! И это еще простые случаи! Т.к. нужно будет вводить поправку на точность вычислений, определять коснется ли один сегмент другого или нет и т.д. и т.п.

Но, если ты готов этим заняться я всячески помогу :)!

Кстати, есть еще одна проблема, когда мы делаем последовательный отступ, нужно дополнительно обрабатывать каждый угол (фиолетовая траектория):
gcode_tools_offset_0030.png
gcode_tools_offset_0030.png (5.27 Кб) Просмотров: 3388
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение berendey1980 » 26 мар 2010, 21:26

здраствуйте :)
скачал плагин.
начертил в инкскейпе линию с координатами 0,0 100,100
сформировал g код

%
(Generated by gcode_tools from inkscape.)
M3
G21 (All units in mm)
G00 Z5.000000
G00 X0.000000 Y-1052.362200
G01 Z-1.000000 F4.000000
G01 X100.000000 Y-952.362180 Z-1.000000 F4.000000
G00 Z5.000000
M5
G00 X0.0000 Y0.0000
M2
(end)
%

По х и z все нормально, что происходит по оси у? видимо я чегото не понимаю?
berendey1980
Новичок
 
Сообщения: 1
Зарегистрирован: 26 мар 2010, 21:14
Репутация: 0

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

Сообщение Nick » 26 мар 2010, 21:43

Дело в том, что в Inkscape точка (0,0) находится в верхнем левом углу страницы (это по умолчанию). Чтобы это исправить можно:
а. настроить сдвиг в плагине (вкладка Параметры). Cдвиг по Y на 1052.362200
б. выключить опцию Generate not parametric code в плагине (вкладка Параметры) и тогда сдвиги можно будет редактировать уже в готовом Gкоде изменив всего одну строчку.
в. сдвинуть кривую в инкскейпе.

Нужно придумать как сделать так, чтобы координаты совпадали с тем, что пишет inkscape в параметрах x и y. Хотя, это сложный вопрос, у моего станка (0,0) вообще справа снизу :). Может просто написать подробный фак и забить ;) (шутка).
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 27 мар 2010, 02:51

3-х точечный метод оффсета и масштаба


Идея задавать на объекте 3 точки и их координаты (сопоставлять реальные маркеры, отметки на заготовке). Таким образом можно деталь на станок класть любым образом, далее подводить центр к этим точкам (или спец. измерительную часть) получать координаты, вводить эти 3 тройки чисел (две пары для плоского случая) в наш плагин, он сопоставляет: реальные координаты станка --> 3 точки на заготовке --> 3 точки на отдельном слое поверх требуемой векторной картинки. Так отпадут проблемы масштаба и т.п. + появится возможность "продолжить" или "доделать" уже начатые действия (другими словами - сделать работу не на чистом куске породы, а нанести что-то на уже имеющееся изделие).

Сеточный метод оконтуривания


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

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

Сообщение Nick » 27 мар 2010, 23:44

dormouse писал(а):

3-х точечный метод оффсета и масштаба


Идея задавать на объекте 3 точки и их координаты (сопоставлять реальные маркеры, отметки на заготовке). Таким образом можно деталь на станок класть любым образом, далее подводить центр к этим точкам (или спец. измерительную часть) получать координаты, вводить эти 3 тройки чисел (две пары для плоского случая) в наш плагин, он сопоставляет: реальные координаты станка --> 3 точки на заготовке --> 3 точки на отдельном слое поверх требуемой векторной картинки. Так отпадут проблемы масштаба и т.п. + появится возможность "продолжить" или "доделать" уже начатые действия (другими словами - сделать работу не на чистом куске породы, а нанести что-то на уже имеющееся изделие).

Это хорошая очень хорошая идея... Нужно продумать реализацию...
Варианты:
1. 8 полей (x1,y1)->(x2,y2) (x3,y3)->(x4,y4). Тут нужно учесть, что поля можно располагать только в столбик по одному, т.е. будет 8 строчек. (Это для плоского случая, для объемного 18 полей.)
2. Кнопка, по которой создаются двве контрольные точки с заданными координатами, которые можно в ручную переместить, потом возможно два варианта:
а. автоматически вычислять трансформацию, при выполнении Path to gcode.
б. заполнять поля оффсетов, и масштабирования по нажатию кнопки.
3. ...
О! нужно еще ввести поля поворота в плоскости. Правда поворот возможен только в плоскости XY, иначе G02 и G03 будут некорректно работать.
Нужно определиться есть ли необходимость позиционирования в пространстве (по трем точкам) или хватит только плоскости?
Кстати, если брать не одинаковое масштабирование по осям х и у, то нужно на одну точку больше.

dormouse писал(а):

Сеточный метод оконтуривания


Пугать проблемой сложности оффсета не надо. Мой метод имеет растровые корни и весьма прост: накидать NхM точек (квадратная сетка), далее для всех оказавшихся внутри контура точек сетки (число пересечений с любым из вертикальных или горизонтальных ЛУЧЕЙ, исходящих из этой точки) проверить что окружность диаметра нашей фрезы не пересекает границ контура. После этого из каждой по правилу спирали обрисовываем траекторию вплоть до "касания изнутри" нашего контура. Полученные итоговые графики сеточных функций проверяем на совпадения, выкидываем дубликаты.
Полученные сеточные границы расширяем наружу вплоть до заданной точности. Результат - готовое оконтуривание.
Предлагаю обсудить данный метод.



Мне не очень нравятся растровые корни, сразу теряются все преимущества векторной графики... Кстати пересечение окружности и кривой тоже нетривиально, в отличие от пересечения прямой и кривой.

Есть идея - глянуть на исполнение оффсета в инкскейпе, возможно, даже скорее всего они ищут точки пересечения кривых методами приближенных вычислений, возможно, если исправить там некоторые параметры, то оффсет будет работать точно, хотя и медленнее. Возможно, удастся уговорить разработчиков внести настройки качества оффсета в настройки программы, тогда не нужно будет писать свой собственный оффсет и работать все будет быстрее.
Когда я пытался писать свой оффсет, я глядел исходники inkscape, но не очень внимательно... Нужно посмотреть еще раз...
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 28 мар 2010, 01:23

Насчёт неравного масштаба по осям для плоского случая: мне до сих пор кажется, что любое преобразование плоскости такого типа задаётся матрицей M(угол, коэфф X, коэфф Y, смещение X, смещение Y). При этом угол=f(зеркальность, kx, ky) (насколько я понимаю).
Состояние 2D плоскости однозначно определяется одним вектором (x_a,y_a),(x_b,y_b) + "отражение", т.е. мы не знаем с какой стороны третья точка будет. Если предполагать, что "зеркалирования" не будет (всегда треугольник ABC переходит в A'B'C' а не в A'C'B'), то достаточно четырёх координат. Постановка проблемы "масштабирования" кажется несколько неверной.

Для спокойствия предлагаю всегда задавать 3 точки. В будущем добавится возможность делать полноценное преобразование в 3D. Третью кнопку сделать как "часть радиобаттона" из трёх случаев: координаты, "normal ABC->A'B'C'", "mirrored ABC->A'C'D'"

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

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

Сообщение Nick » 29 мар 2010, 13:04

Не совсем так: вот пример, вектор (x1,y1) можно привести к вектору (x2,y2) бесконечным количеством способов, вот два граничных:
1. Масштабированием по оси у.
2. Масштабирование по обоим осям, чтобы длина первого и второго совпадали, а затем поворот на нужный угол.
-----------
По поводу оффсета, может отложить приняти решения по нему на неделю-две, я запостил баг на ветке инкскейпа, может гуру нам что-нибудь посоветуют.
Плюс, покапался в исходном коде инкскейпа и нашел интерессное место в оффсете (http://inkscape.modevia.com/doxygen/htm ... 65e353a6fb):
Код: Выделить всёРазвернуть
if ( use_slow_but_correct_offset_method == false ) {
Здесь идет первый метод оффсета, который как я понял берет оффсет какраз через оконтурение обводки
}
else {
здесь второй метод
}


ЗЫ интересно, что сегодня такой же вопрос появился в английской ветке.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 29 мар 2010, 14:31

На плоскости сама матрица перехода из вектора a(x1,y1)-->b(x2,y2) одна. Это набор из 9 чисел. m_{1,1}..m_{3,3}. ЧИСЕЛ!
Что такое "бесконечное количество способов...." ? Я полагал что плоскостные преобразования это формула "b=am"

Эти 9 m-коэффициентов = f(угол, перенос х, перенос у, масштаб х, масштаб у) (масштабы могут быть отрицательными для abc->acb)
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 29 мар 2010, 15:30

Нет не одна!
Вот пример: вектора (1,1) и (1,2).

Матрица 1 растяжение по у в два раза:
Код: Выделить всёРазвернуть
1  0  0
0  2  0
0  0  1

Матрица 2 сдвиг по у на 1 :
Код: Выделить всёРазвернуть
1  0  0
0  1  0
0  1  1

Можно еще растяжение + поворот...
Суть в том, что такое преобразование задается тремя точками.
Т.к. две точки всегда лежат на одной прямой, и растяжение поперек этой прямой не задать этими двумя точками.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 29 мар 2010, 17:11

Недопонимание продолжается.
Речь идёт о двух векторах и двух точках их приложения. Т.е. ЧЕТЫРЕ числа "было" и ЧЕТЫРЕ числа "стало". Указанный пример (1,1,1)*(100, 020, 001)=(1,2,1) - это не перемножение адекватных матриц, а просто одно из решений матричного уравнения a=bm. Нужно не абы какое, а "правильное" :lol:

Для корректной матрицы надо принять (к примеру) последовательное перемножение матриц: перенесли на "-точку приложения первого", повернули на угол между векторами, отмасштабировали, перенесли на "+вторую точку приложения"

Это задаёт вполне понятную, адекватную матрицу. И четырёх точек для этого достаточно (кроме центрально-симметричного преобразования ABC-ACB, там вручную надо коэффициенты масштабирования на обратные заменить и угол на пи/2, но это проверять надо - говорю наугад).
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 29 мар 2010, 18:23

Что-то я не совсем понял, какие четыре точки? Если ты имеешь в виду начало и конец вектора, то получается тоже самое.
Вопрос в том как пользователь задаст необходимую трансформацию? Если он задаст матрицу - тогда задача решена, еслион задаст две точки и их преобразованные координаты, тогда даных недостаточно, т.к. по этим данным можно построить уйму неправильных преобразований.
Необходимо : либо задание матрицы 3х3 либотри точки и их преобразованные координаты либо отдельно сдвиг, масштаб и поворот либо ...
Это для плоского случая.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 29 мар 2010, 20:51

Мы говорим на разных языках. Если пользователь задал 4 точки (AB - на исходной плосксти, A'B'-на конечной), то этого достаточно, если матрицу преобразования мы сами строим по указанному ранее правилу. Т.е. последовательным умножением перенос-поворот-масштаб-перенос... Эта матрица зависит прямо от 8-ми координат точек, либо можно выразить через 2 переноса, 2 масштаба, 1 угол.

Т.е. порядок слов такой: задали 4 точки => вычислили (угол, 2 переноса, 2 масштаба) => выписали матрицу => умножили на неё все координаты объектов первой плоскости => получили новую картинку во второй

Если этот метод нарисовать геометрически, то он весьма очевиден. Завтра могу нарисовать его и написать явно матрицу.

Прошу привести проблемы такого преобразования. Я вижу, что оно переводит вектор AB в A'B' сохраняя всё прочее (масштаб расстояний и подобия фигур, т.е. все геометрические свойства). Если нужно зеркалирование плоскости, то должна быть галочка "зеркало", без третьей точки это не сделать.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 29 мар 2010, 22:37

Теперь я понял, но все равно остается проблема:
нельзя задать растяжение по оси у в два раза, потому как мы можем сразу подумать, что это поворот + масштаб по двум осям (если (0,0)->(0,0) и (1,1)->(1,2)).

Таким образом получается, что пользователю придется придумывать такие точки, чтобы они однозначно могли определить матрицу трансформации исходя из алгоритма ее построения.
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 29 мар 2010, 23:04

Теперь и я понял суть проблемы. Речь именно о последовательных преобразованиях => надо дать на выбор пару-тройку цепочек. Предлагаю выбор radiobutton:
1. [МАСШТАБ] перенос A,B,A',B' обоих в начало координат, масштаб B_0->B'_0, перенос A_0,B_0->A'
2. [ПОВОРОТ+ДЛИНА] перенос в начало, поворот, масштаб, перенос в A'
3. ещё что-нибудь.

Сами матрицы тривиальны, готов написать в коде и реализовать.

P.S. Лог-файл стал хорошо и удобно работать.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 30 мар 2010, 09:33

С матрицами все конечно просто, вопрос со стороны пользователя в следующих ситуациях (просто точки такие-то, такую кнопку нажать)
хочу растяжение по у в два раза
хочу растяжение по у в два раза, по х в 3 раза
хочу растяжение по у в два раза, по х в 3 раза, поворот на 30 градусов и перенос на 15 мм вверх и 20 вправо.

Может всетаки проще взять три контрольные точки, или ограничить растяжение (вместо независимых по х и у, разрешить только по плоскости ху)?

И какая должна быть реакция плагина?
1. Заполнить графы в окне мы ИМХО не сможем. Можно только записать данные в файл, или добавить в рисунок (текстом например).
2. Как обозначать эти точки? У меня такое предложение: сделать отдельную кнопочку(радио или таб) в которой вводишь желаемые (преобразованные) координаты точек (двух или трех как решим), затем нажимаем кнопочку и в сцену добавляется три группы содержащие стрелку и приписку с координатой. Потом пользователь перемещает их в нужные места.
gcode_orientation_0027.png
gcode_orientation_0027.png (6.49 Кб) Просмотров: 3349

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

О, можно как вариант при нажатии кнопки добавления контрольных точек, добавлять точки например (0,0), (0,100), (100,0), а пользователю вводить нужные координаты путем изменения текста в этих группах... (только нужно разобраться с локалями - вечная проблема у нас разделитель дробной части "," у них ".").
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 30 мар 2010, 14:21

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

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

Сообщение Nick » 30 мар 2010, 14:53

А зачем обязательно слои? Их можно в любое место впихнуть :).
Просто добавим им поле типа comment="Orientation dot".

Нужно придумать, что делать с гравировкой, я думаю перед добавлением новых функций имеет смысл отделить новую версию...
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

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

Сообщение dormouse » 30 мар 2010, 15:11

Точно. Там же есть label, title, description. Тогда надо наделать тройки точек по правилу label или description = (a00,b00,c00). Причина "00" в том, что часто одну деталь надо разбивать на много кусочков (скажем, резную стену на куски по 400x400) или что-то небольшое под маленький станочек 100x200 и т.п. без идеальной стыковки работа невозможна. Вариант с отдельным (для удобства) слоем и именованным точкам хорош!
Алгоритм работы: выбрали контуры, в диалоге вписали 0 и получили результат. Осталось только серилизованный вариант настроек сохранять во внешний файл/грузить из него... либо в буфер обмена скидывать.
Аватара пользователя
dormouse
Мастер
 
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer

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

Сообщение Nick » 30 мар 2010, 17:39

dormouse писал(а):Точно. Там же есть label, title, description. Тогда надо наделать тройки точек по правилу label или description = (a00,b00,c00). Причина "00" в том, что часто одну деталь надо разбивать на много кусочков (скажем, резную стену на куски по 400x400) или что-то небольшое под маленький станочек 100x200 и т.п. без идеальной стыковки работа невозможна. Вариант с отдельным (для удобства) слоем и именованным точкам хорош!
Алгоритм работы: выбрали контуры, в диалоге вписали 0 и получили результат. Осталось только серилизованный вариант настроек сохранять во внешний файл/грузить из него... либо в буфер обмена скидывать.

Настройки можно каждый раз брать из сцены (рисунка), просто искать элемент с нужным комментом.
Чтобы все было примерно так а пользователь мог сам изменить текстовые поля и перенести точки куда ему нужно:
Вложения
Разработка Gcodetools - плагин Inkscape для экспорта в Gкод Снимок-engraving.svg — Inkscape.png
Use the Console, Luke.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22330
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1315
Заслуга: Developer
Медальки:

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: adlerss, aftaev, Ale2, Alex4x4, arkhnchul, bawero, Bing [Bot], Brynet83, colosimo, Deko, Elena1993, Ershoff, ESP, frezeryga, georg20013, Google [Bot], Google Feedfetcher, ilia, Lunatic, mihazloy1, motor, NikolayUa24, Oxford, paganel, Predator, Sashalex24, sertix, sn0wflake, Taganrog, Umnik, vinar, woodman, Yahoo [Bot], Yandex [bot], ZL0, Питерский, шпиндель

Поделиться

Reputation System ©'