Gcode tools это плагин для векторного редактора Inkscape, он позволяет конвертировать кривые из Inkscape в Gкод, используя круговую и линейную интерполяцию.

Краткое описание Inkscape Вы можете найти в оглавлении темы.

Возможности:

Лицензия: GNU GPL

Установка: распакуйте архив в каталог /usr/share/inkscape/extensions/ и перезапустите inkscape (для Windows - \Program Files\Inkscape\share\extensions\)

Использование: Выделите одну ли несколько кривых. Нажмите Расширения→Gcode tools… Выберите необходимые параметры, нажмите применить.

Manual для версии 1.2 в этом посте: viewtopic.php?f=15&t=34&start=40#p143

Подробное описание для версии 1.1 в этом посте: viewtopic.php?f=15&t=34&start=40#p100

Tutorial по обработке площади контура: viewtopic.php?f=15&t=34&start=60#p152

Tutorial по созданию шестеренок: viewtopic.php?f=15&t=42&start=0#p154

Последняя версия: (ver 1.2) extensions.tar.gz

Разработка новых функций:

На данный момент в разработке находятся:

Вы можете помочь улучшить Gcode Tools давая советы, отчеты об ошибках, помогая разрабатывать новые функции.

Помощь проекту:

Вы можете поддержать проект Gcode tools. Мы будем благодарны любой поддержке!

Чтобы помочь проекту Вы можете:

Gcode tools ver. 1.2 tutorial

Рассмотрим возможности расширения Gcode tools.

В этом туториале мы рассмотрим возможности расширения Gcode tools для обработки площади контура.

  1. Рисуем/загружаем контур. Для примера я взял логотип cnc–club.ru

  2. Если Ваш рисунок состоит из нескольких контуров, содержит тексты, эллипсы, прямоугольники, группы и т.д., то делаем следующее:

    Контур → Оконтурить объект (Shift+Ctrl+C), потом Объект → Разгруппировать (Ctrl+Shift+G), при необходимости повторять до тех пор пока в статус баре не будет написано что–то похожее на : «3 объекта типа Контур» или «Контур (400 узлов)».

  3. Затем объединим все получившиеся контуры в один: Контур → Сумма (Ctrl+«+»).

  4. Рисуем прямоугольник помещаем его на задний план (Page Down или End) и центруем его относительно нашего контура (Ctrl+Shift+A). Подготовка контура закончилась!

  5. Выделяем контур и прямоугольник Контур &rarr Разность (Ctrl+"-").
  6. Рассчитываем кривые покрывающие площадь контура: Расширения → Gcode tools… Заполняем поля Tool diameter во вкладке Preferences — диаметр фрезы

    Открываем вкладку Area, и заполняем параметр Area radius. Сюда нужно вставить ширину самого толстого места контура (самое толстое место от любой части конура до любой другой части, включая внутренние части). Проще всего измерить ширину при помощи инструмента перо, во время рисования в статус баре пишется длина контура.

    Выбираем Calculate area curves. Нажимаем применить. Иногда, для получения более хорошего результата, лучше преобразовать контур в Динамическую втяжку (Контур → Динамическая втяжка) перед применением функции Calculate area curves.

  7. После этих действий имеем группу с кривыми покрывающие площадь контура. Но в этих кривых могут быть дефекты.

  8. Для устранения дефектов заходим в группу (двойной клик на группе). Выделяем все (Ctrl+A). Преобразуем в контуры Контур → Оконтурить объект (Shift+Ctrl+C). И разбиваем контуры на составляющие (Ctrl+Shift+K). Стираем не нужные кривые, при необходимости правим остальные.

  9. Все готово для экспорта в Gкод. Выбираем все полученные кривые, Расширения → Gcode tools… во вкладке Preferences вводим параметры фрезеровки, директорию и имя файла, во вкладке Path to Gcode вводим параметры допуска интерполяции и максимального количество разбиений (обратите внимание, что при каждом разбиении сегмент контура делится на два, т.е. при значении максимального количества разбиений равном 5 сегмент может разбиться до 25 = 32 раз).

Выбираем Path to Gcode. Нажимаем применить. После выполнения конвертации в изображение добавится группа отображающая рабочую траекторию инструмента.

Проверим что получилось: Все хорошо, только я не попал в рабочую область станка Но это не беда, есть несколько вариантов решения этой проблемы:

  1. Задать смещение системы координат в программном контроллере
  2. Задать смещения в готовом Gкоде, просто отредактировав в обычном текстовом редакторе (gedit, блокнот) эти строки: (если вы оставили Generate not parametic code не выбранной)
#4  = 4.000000 (Feed)
#5  = 0.900000 (Scale xy)
#7  = 1.000000 (Scale z)
#8  = 0.000000 (Offset x)
#9  = 0.000000 (Offset y)
#10 = 0.000000 (Offset z)
#11 = 5.000000 (Safe distanse)

1. Необходимо облегчить отрисовку узоров с произвольной глубиной.

Как я это вижу : удобнее всего нарисовать внешние границы узора, а потом привести его к нужному виду. Под нужным видом подразумевается контур с эффектом переменной толщины, что по сути является эффектом Path along path.

Итак входные данные замкнутый контур. Хотим получить траекторию посередине этого контура и вычислить переменную толщину. Первая проблема — как найти траекторию?

Сначала нужно найти направление траектории можно построить множество контуров выбрать тот у которого будет самым маленьким самое толстое место. Но это достаточно трудозатратно. Второй вариант заставить человека указывать начало и конец траектории. Для этого придется заставлять рисовать человека еще одну кривую. Имхо это не так сложно и стоит пойти по этому пути.

Если у нас есть начало и конец траектории, то мы можем разделить контур на две части — условно правая и левая. После этого мы можем очень просто рассчитать точки посередине. Интересно если равномерно разбить правую и левую част и взять усредненные их контрольные точки, то получившаяся кривая будет проходить ровно посередине или нет? Сами–то контрольные точки будут точно посередине.

Нужно расписать векторную форму кривой Безье и все станет понятно.

2. Нужно написать обработку таких узоров.