Разработка 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 (175737 просмотров) <a class='original' href='./download/file.php?id=348&sid=51eca617ecb5ced55a1f2c270bf24656&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: Разработка Gcodetools - плагин Inkscape для экспорта в G

Сообщение dormouse »

Попробую для начала вставить этот кусочек в generat_gcode, строку

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

				g += "G01" +c(si[0]+[s[5][1]+depth]) + feed + "\n"
Детальнее планирую следующие шаги:
1. найти изображение в текущем слое, проверить что оно для Z-depth-map и что какие-то галочки в свойствах слоя говорят "использовать z-depth-map"
2. Загрузить .png серый из файла или ничего не делать если оно в Inkscape внедрено, после - придумать base-64 декодирование или почитать внимательней документацию PIL для прямой загрузки из пространства svg xlink:href
Если это не серый png, то соответственно типу изображения сделать конвертацию типа im = im.convert('P')
3. выдернуть в numpy массив цветов, опираясь на палитру
4. применить матрицу трансформации + xywh, взятые из свойств картинки чтобы наложить пиксельную структуру на лист в миллиметрах для совпадения единиц измерения с пространством детали. Возможно в нужном массиве сразу закешировать реальные глубины в мм. Вероятно понадобится делать после поворота новую квадратную матрицу (скорее всего сразу её надо сделать по размеру кривых, которые окажутся подпадающими под её действие) с нужной точностью (учесть очередные параметры слоя).
5. в кусок кода generate_gcode вставить в два места ограничения на Z-начало и Z-конец очередного сегмента в зависимости от значений цвета пикселей карты глубин в этом месте
6. Продумать, что случится с дугами. Они по идее превратятся в части спиралей по формуле xyz=cos(t),sin(t),k*t+b. совершенно не помню, умеют ли ЧПУ-станки строить в плоскости XY дугу, при этом двигаясь по оси Z.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

2. Нужно сделать спец поле, которое будет содержать заглубление в зависимости от цвета, типа того, которое уже есть на Path-to-Gcode. вообще их можно объединить.
3. В png вроде все цвета хранятьс яв труколоре, разница в том, есть ли альфа канал или нет.
4. Лучше при проверке на попадание конца дуги в рисунок вычислять координаты точки в рисунке, и исходя из этого брать цвет, т.е. не нужно стразу весь рисунок трансформировать, делаем только матрицу обратного преобразования.
5. Да, наверное пока можно все туда запихать, все равно к следующему релизу ее надо будет кардинально пересмотреть.
6. Да можно, именно так все и делается. Тупо G02 X-- Y-- Z-- I-- J-- рисует спираль.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

3. В png может храниться много чего. К примеру 8-bit изображения + палитра к нему (которая всегда RGB 256 записей, т.е. 768байт подряд).
В этом смысле RGBA изображение это совсем иное чем 8-bit палитровое, пришлось кой-чего поделать!
4. т.е. только обратное преобразование в прямоугольник картинки? И в зависимости от галочки "inverted colors" если промазали мимо границ изображения то давать цвет 0xFF/0x00 ?

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

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

Сообщение Nick »

Да, мне что-то они тоже сразу не понравились ;), надо будет поискать, может есть библиотека по-лучше.

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

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

Сообщение dormouse »

Нет. Ситуация ТУПЕЕ! в поставку Inkscape, собранным с python2.6 входит юниконвертер 1.3 собранный с python2.5.
Решение - поставить юниконвертер свежий, который собран с тем же питоном, что и сам inkscape. Всё есть в поставке, просто "есть" версии 2.5, а вызываем из 2.6

Чуть подправил сообщение с читалкой PNG 8-bit. Теперь успешно выдаётся матрица. Завтра сделаю функцию красивой. Будем двигаться дальше, стало интересно.
Последний раз редактировалось dormouse 31 янв 2012, 17:19, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение dormouse »

Так это "все" там знают. Это уже фича, а не баг по их мнению. бред.

Последний момент - можно ли получить то изображение, которое на экране нарисовал inkscape кроме вызова его самого из-под себя в отдельном сеансе коммандной строки? Не очень мне нравится идея отдельно руками PIL звать почему-то...

Рабочий код, который возвращает numpy матрицу из файла всех трёх типов ("P","L","RGB") + декодирует содержимое xlink:href base-64 изображение:

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

import Image, ImagePalette, numpy, base64
def getZDepthMap(file):
 im = Image.open(file)
 mode=im.mode
 print ("file=",file,"mode=",mode)
 out=""
 if (mode=="P"):
  im_format,im_palette=im.palette.getdata()
  for color in im.getdata():
   out=out+im_palette[color*3]
 elif (mode=="RGB"):
  for color in im.getdata():
   out=out+chr(color[0])
 elif (mode=="L"):
  for color in im.getdata():
   out=out+chr(color)
 print("out:",out)
 imgBeforeTransform = numpy.fromstring(out,numpy.uint8)
 imgBeforeTransform = numpy.reshape(imgBeforeTransform,im.size)
 print(imgBeforeTransform)
 return imgBeforeTransform
a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAEAAQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCbwL8KNJ1SPxBGdZ121TT9aubGJbW6VAyR7cMw2HLHPJGOg4ooooA//9k="
data=base64.decodestring(a[a.find(","):])
open("decoded.jpg",'wb').write(data)

getZDepthMap("png-0-14.png")
getZDepthMap("png-0-14-rgb.jpg")
getZDepthMap("png-0-14.jpg")
getZDepthMap("decoded.jpg")
выдаёт одинаковую матрицу в итоге:

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

('file=', 'png-0-14.png', 'mode=', 'P')
('out:', '\x00\x01\x02\x80\x05\x06\x07\x08\t\n\x0b\x0c\xff\x0e\x0f\xff')
[[  0   1   2 128]
 [  5   6   7   8]
 [  9  10  11  12]
 [255  14  15 255]]
('file=', 'png-0-14-rgb.jpg', 'mode=', 'RGB')
('out:', '\x00\x01\x02\x80\x05\x06\x07\x08\t\n\x0b\x0c\xff\x0e\x0f\xff')
[[  0   1   2 128]
 [  5   6   7   8]
 [  9  10  11  12]
 [255  14  15 255]]
('file=', 'png-0-14.jpg', 'mode=', 'L')
('out:', '\x00\x01\x02\x80\x05\x06\x07\x08\t\n\x0b\x0c\xff\x0e\x0f\xff')
[[  0   1   2 128]
 [  5   6   7   8]
 [  9  10  11  12]
 [255  14  15 255]]
Использованные файлы:
http://kalyaev.com/2012/20120129/getZDepthMap
http://kalyaev.com/2012/20120129/png-0-14.png
http://kalyaev.com/2012/20120129/png-0-14.jpg
http://kalyaev.com/2012/20120129/png-0-14-rgb.jpg

Итог: Данные из всех типов картинок (jpg/png/gif/bmp и т.п., серые, палитровые и RGB, внедрённые и во внешних файлах) картинок успешно преобразованы в numpy-матрицу с reshape. Не тестированы однобитные .bmp файлы (удобная маска резать/не резать. Похоже на keep-out границы областей, которые необходимо оставить без воздействия инструментов!!!). Так что проблема отступила. Так же придуман обходной путь к 16-бит картинкам - класть их в формате pgm с таким же именем файла, но другим расширением в ту же папку. Тогда будут начитываться они вместо 8-битной картинки, которую пользователь видит на экране.
Последний раз редактировалось dormouse 01 фев 2012, 10:48, всего редактировалось 1 раз.
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Взвесил за-и-против. Предлагаю так организовать процесс:

1. На слой можно поместить сколько угодно картинок (как внедрённых, так и слинкованных).

2. По аналогии с dxf-points сделать "добавление картинки". Конкретно - надо дать возможность назначать свойства отдельной картинке. Предполагаемый набор свойств: {толщина картинки в мм;смещение в мм;сглаживание да/нет;белый сверху да/нер;картинка активна да/нет}
Возможные варианты: 2a) выделить картинки и каждую поместить в группу, добавив в неё же листик наподобии tool
2b) добавить в каждую картинку циферку и инструмент, а в общую таблицу вносить отдельные строчки по картинкам

3. рассчитать матрицу преобразования P(x,y,z) для каждой картинки с пространства либо листа svg либо mm 3D-пространства в матрицу numpy-пикселей размером n*m с параметрами xOffset,yOffset,w,h,transformMatrix,zDeptht,zOffset (последние два из свойств картинки)

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

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

Сообщение Nick »

Полностью согласен. Небольшое уточнение по интерфейсу. Я думаю есть смысл сделать отдельную вкладку по работе с картинками (или впихнуть куда-то). Суть должна быть такой, выбираем картинки и делаем добавить картинки в Gcodetools. Эта функция будет заворачивать картинки в спеиальные группы с описанием всех параметров картинки, так же как с инструментом.

Дальнейшие изменения потребуются в get_info - добавления парсера параметров картинок, аналогично парсеру параметров инструментов.
Картинки надо приписывать к слою, т.е. понадобится новый dict self.z_bitmaps или просто self.bitmaps = {}.
Т.е. вызов картинки будет будет self.bitmaps[layer][0]

Формат данных картинки, предлагаю такой:

Кстати, может картинки сделать отдельным классом, так получится более по питоновски.
У картинки будет:
параметры: x y wx wy transformMatrix z Z
кстати, на счет Z может лучше сделать функцией от цвета, т.е. глубину будем вычислять по формуле eval(bitmap.zfunc,{"c":bitmap.get_color(x,y)})
также нужна будет функция transform_coordinates(x,y) в локальные координаты в картинке
и get_color(x,y) выдает цвет по указанным координатам.
еще можно функцию inside(x,y) говорит, попадает ли точка в картинку.

Остается вопрос с перекрывающимися картинками и полупрозрачностями. Можно на первое время сделать так, что берем цвет только из верхней картинки в которую попадает точка x,y.

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

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

Сообщение dormouse »

Вначале ответы:
кстати, на счет Z может лучше сделать функцией от цвета, т.е. глубину будем вычислять по формуле eval(bitmap.zfunc,{"c":bitmap.get_color(x,y)})
Разумеется, да. Только под Z имелась в виду толщина слоя картинки - она разная у каждой. При этом zfunc как раз должна включать как параметр тип сглаживания квадратных пикселей.

Попадание точки:
если не попали - оставляем "по старому"
если в две и более - самую верхнюю выбираем. логично, стандартно.

Важно учесть, что иногда надо на поверхности выфрезеровать выемку нужного растрового вида. тогда надо для этого слоя задать общее поведение "резать где есть картинка да/нет" в положение "да". Это свойство добавим в свойства Orientation_points? или отдельную какую-то вкладку надо делать?

Большая картинка - это 50 мегабайт ж-кода (скажем изделие метр на метр с шагом 0.2мм, т.е. 5тыс проходов по сотне смен высоты в каждом). Накладные расходы на такое число операций велики. Но и расход оперативки на кэш тоже немал.
Надо продумать всё-таки В КАКОМ ПРОСТРАНСТВЕ РАБОТАТЬ!!! Либо надо все матрицы исходных картинок закешировать в виде Z-реальных глубин в пределах картинки (каждая превращается в пр.паралл. и координаты в нём в мм) вместо цветов и тогда работать по координатам XY листа Inkscape до стадии преобразования их в мм.

Так же важно учесть, что обычно алгоритмы image-to-gcode строятся по принципу "опуститься на глубину слоя и идти вперёд, пока не встретится выступ. С него начать новую линию вверх и т.п.". Наша простейшая реализация - лишь сделать вместо длинных линий короткие чтобы ошибка была мала. Что-то вроде дисткретизации с шагом квантования delta_x. Результат - повышенный размер g-кода.
Как возможное решение - возможно имеет смысл мне чуть посидеть и подумать и всё-таки сделать несколько дополнительных строк в секции вывода линии (конкретно задача построения рельефа горы вместо туннеля насквозь на заданной глубине). и заменить одну линию на череду кусочков с учётом рельефа....
С другой стороны, такое рассмотрение конкретного сечения Z-depth-map картинки фактически означает новый векторный контур, просто выстроенный с заменой плоскости XY на YZ! Может лучше по картинке написать функцию добавления на лист контура, но в момент его резания заменять координаты поворотом С.К. на 90? Таким образом мы получим автоматически функциональность функции геометрии режущего наконечника фрезы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

ИМХО лучше всего работать в пространстве единиц станка (т.е. мм или inch). Потому, что все коэффициенты у нас именно в них. И допуски будет удобнее в них задавать. Преобразовывать картинку не надо, будем хранить только матрицу преобразования. По аппроксимации цвета, можно сделать настраиваемой функцию аппроксимации, т.е. по x,y в картинке выдавать цвет точки либо по ближайшей точке, либо по билинейной или бикубической интерполяции.

Если нужно для вырезания всей картинки можно обрисовать ее границы и использовать FillArea - получится аналог image-to-gcode.

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

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

Сообщение dormouse »

Идея работать в пространстве единиц станка мне нравится. Думаю реализовать тогда свой старый алгоритм здесь. суть в следующем.
На первом шаге сделать фильтр, который возьмёт нужную (или всю) Depth Map и после прохождения по ней с учётом контура фрезы сделает AllowableDepthMap, т.е. "допустимую Depth Map", фактически "правильную".
Тогда после этого всё резать можно будет уже без учёта геометрии фрезы, достаточно будет только xyz сравнивать.

Главная задача на мой взгляд - всё сделать на уровне вывода примитивов линии, дуги и dxf-point'ов в плане ограничения глубин и самого факта резания через mask/depthMap.
Я подумаю о функции Zmax=getAllowableDepthMapZ(x,y,z), которая будет проходить по всем картинкам (уже в ней выберется нужная, "верхняя по стеку svg в случае пересечения"). Сложность некая в том, что 1 пиксель depth map представляет собой некий куб или сферу в реальном метрическом пространстве и надо не упереться в колоссальные вычисления на каждом шаге. Но это я решу.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение dormouse »

Сложность в том, что очень много вычислений случается в растровых вещах если неправильно написать. тот же image-to-gcode работает стабильно, но может это стабильно делать 8 часов подряд (реальная цифра!).
Я ещё немножко подумаю как лучше сделать всё. Пока остановлюсь на такой рабочей гипотезе - сделать для отрезков g01: дано (xyz начала), (xyz конца), depthmap, контур фрезы и прочие параметры. Задача - преобразовать отрезок в набор отрезков длины не более maxL каждый с учётом условий...
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6601
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

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

Сообщение NightV »

dormouse писал(а):Сложность в том, что очень много вычислений случается в растровых вещах если неправильно написать. тот же image-to-gcode работает стабильно, но может это стабильно делать 8 часов подряд (реальная цифра!).
Я ещё немножко подумаю как лучше сделать всё. Пока остановлюсь на такой рабочей гипотезе - сделать для отрезков g01: дано (xyz начала), (xyz конца), depthmap, контур фрезы и прочие параметры. Задача - преобразовать отрезок в набор отрезков длины не более maxL каждый с учётом условий...
dormouse впервые сказал что-то что я понял :hehehe: :hehehe: :hehehe: яж говорил... програмеры :hehehe: я не говорю что я тупой, просто они наверное очень умные :hehehe:
Всё просто! если знаешь КАК!
Аватара пользователя
dormouse
Мастер
Сообщения: 334
Зарегистрирован: 27 фев 2010, 09:55
Репутация: 15
Заслуга: Developer
Контактная информация:

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

Сообщение dormouse »

Возможно, несколько перегнул палку выписывая столько лишних слов... но дело делать когда-нибудь нужно. Лишний раз на другой день сам перечитаешь - и снова в курсе вчерашних мыслей =)

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

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

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

Сообщение Nick »

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

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

Сообщение dormouse »

скорее для сверления фрезой. С умыслом dxfpoint с диаметром D. Если фреза меньше чем нужный диаметр, то вместо вертикального сверления идти по спирали с некоторым диаметром?
Ответить

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