Table of Contents
gcodetools - выделяет названия программных продуктов.
Жирное начертание - определения
Жирное начертание+курсив - клавиатурные команды
Курсив - название операции (функции) в меню
Gcodetools это расширение для графического векторного редактора Inkscape для создания G-кода на основе изображения.
Gcodetools умеет генерировать G-код для различных видов обработки - фрезерование 2.5D, токарная обработка, раскрой материала и др.
Gcodetools и Inkscape распространяются под лицензией GNU GPL, т.е. бесплатно, в т.ч. для коммерческого использования. Обе программы кросплатформенные, есть дистрибутивы под Windows, Linux и MacOS.
Распакуйте архив и скопируйте все файлы в каталог Program Files\Inkscape\share\extensions\
Распакуйте архив и скопируйте все файлы в каталог /home/<имя пользователя>/.config/inkscape/extensions/ или /usr/share/inkscape/extensions/ и перезапустите inkscape
Версию, находящуюся в разработке, можно загрузить с http://www.launchpad.net/gcodetools при помощи bazaar, для этого выполните в консоли bzr branch lp:gcodetools или через веб-интерфейс http://bazaar.launchpad.net/~gcodetools.team/gcodetools/develope/files.
Экспорт в Gcode
Обработка на токарном станке
Обработка площади контуров
Гравировка фигурными фрезами
Библиотека инструментов
Система ориентирования
Постпроцессор
Предварительная проверка рисунка
Плоттерная резка
Общие
Gcodetools работает с кривыми безье - основным элеметном рисукнов в Inkscape. Все векторные объекты (фигуры, тексты, клоны) могут быть приведены к виду кривой Безье без потери точности. Для перевода объекта в кривую Безье (далее контур или path) нужно выполнить Контур-Оконтурить объект или нажать клавиши Ctrl+Shift+C.
Объекты не являющиеся контурами, т.е. те объекты, которые нужно преобразовывать в контуры:
Чтобы определить, является ли объект контуром, нужно его выделить при этом в строке состояния должно быть написано Контур или несколько Контуров.
По-умолчанию, Inkscape рассчитывает размер объектов исходя из его видимых размеров. Т.е. в линейные размеры объектов, помимо размеров контура, входят толщина обводки, размеры эффектов. Если вы нарисуете круг размером 10х10мм с обводкой 1мм, то Inkscape будет отображать его размер как 11х11мм, но при экспорте в G-код круг будет диаметром 10мм. Это связанно с тем, что основное предназначение Inkscape - векторная графика.
Чтобы Inkscape отображал реальные размеры контуров без учета обводк и эффектов нужно зайти в настройки Inkscape нажатием клавиш Ctrl+Shift+P, в самом верхнем пункте (Инструменты) изменить Площадка объекта на Геометрическая площадка.
Единицы измерения - по умолчанию Inkscape используется - px (пикселы). Соотношения между пискселами и другими единицами измерения
Практически все внутренние вычисления проводятся в px. Единицы измерения можно изменить в настройках документа нажатием клавиш Ctrl+Shift+D. Можно настроить единицы отображения, единицы линеек и единицы сетки.
Т.к. Gcodetools является стандартным расширением Inkscape, то возможности по созданию интерфейсов сильно ограничены. Выбор выполняемой функции определяется открытой вкладкой во время нажатия кнопки Применить. Например, если Вы хотите выполнить экспорт в G-код, то перед нажатием на Применить нужно открыть вкладку Path to Gcode. Если появляется следующая ошибка:
Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library.
Current active tab id is "preferences"
то это значит, что вы не открыли нужную вкладку перед нажатием Применить.
Раньше все вкладки Gcodetools были размещены на одном окне, но вкладок становилось все больше и больше и они перестали влезать на экран, поэтому пришлось разместить их на разных окнах. При этом одни и те же вкладки могут встречаться на нескольких окнах по мере надобности.
Live preview - никогда не включайте Live preview. Чтобы окно Gcodetools не блокировало Inkscape и не закрывалось при нажатии Применить, Gcodetools сделан в виде live effect. Это обусловливает появление Live Preview. Но с live preview могут возникать проблемы, поэтому, лучше не трогайте live preview!
Некоторые настройки, такие как параметры инструментов и точки ориентации, вынесены с формы Gcodetools в сам рисунок. В этом случае их можно редактировать при помощи инструмента Текст (F8). Например, чтобы изменить подачу включите инструмент Текст и измените число напротив поля Feed в описании инструмента. Старайтесь редактировать такие параметры только при помощи инструмента Текст. Такие настройки, например определение инструментов можно копировать обычными методами Inkscape.
[IMPORTANT] Ни в коем случае не разгруппировывайте группы настроек, это удалит скрытые параметры и Gcodetools не сможет определить эти настройки!

Экспорт в G-код (Path to Gcode) - самая первая функция, с которой началась разработка Gcodetools. Она предназначена для экспорта контуров в Gcode для фрезерной обработки и раскроя материала. Режущий инструмент перемещается в плоскости XY повторяя выбранные контуры.
Path to Gcode использует Точки ориентации и характеристики Инструментов для определения параметров обработки (подача, скорость заглубления, заглубление за проход, дополнительный G-код перед/после контура (см. далее)). Если Точки ориентации или определение инструмента не были заданы, то Gcodetools добавит стандартный инструмент и стандартные точки ориентации, о чем будет дополнительное сообщение.
Path to Gcode это одна из основных функций и она будет использоваться на финальной стадии создания G-code практически для любого вида обработки.
По-умолчанию, Path to Gcode экспортирует выделенные контуры в G-code, если ничего не выделено то Path to Gcode попытается экспортировать все контуры на рисунке (это поведение можно изменить, отключив на вкладке Options опцию Select all paths if nothing selected).
Biarc interpolation tolerance - допуск по точности аппроксимации контура биарками. Изначально каждый сегмент контура аппроксимируется одной биаркой, затем вычисляется максимальное расстояние от биарки до сегмента контура. Если оно превышает заданный допуск в единицах измерения (заданных точками ориентации) то сегмент разбивается на две части, и процедура повторяется для каждой части отдельно.
Maximum splitting depth - максимальная глубина разбиения, максимально число итераций для аппроксимации сегмента контура биарками. Необходимо отметить, что конечное число частей. на которые будет разбит контур может быть гораздо больше, чем максимальная глубина разбиения. Оно ограниченно 2n, где n это максимальная глубина разбиения. Если необходимая точность достигнута на какой-то итерации, то сегмент контура не будет разбиваться далее. Если вы все-таки хотите, чтобы сегмент был разбит на максимальное количество частей, то просто установите допуск аппроксимации равным 0.
Cutting order - это порядок в котором будут обрабатываться контуры. Контуры обрабатываются в порядке следования Слоев на рисунке, сначала обрабатывается самый верхний слой, за тем слои которые находятся ниже. Внутри слоя очередность обработки может быть следующей:
Depth function - при помощи этой функции можно дополнительно определить глубину обработки. При задании Depth function можно пользоваться математическими и другими фцнкциями python (например math.sin(), math.sqrt()). Также могут быть определены константы:
Sort paths to reduse rapid distance - сортировать контуры для того, чтобы уменьшить холостой пробег.

Select all paths if nothing selected - если ни один контур не выбран и включена эта опция, то Gcodetools будет пытаться обработать все контуры на рисунке.
Minimun arc radius - EMC2 может выдать ошибку если радиус дуги G02 или G03 будет меньше 0.02 мм (также возможны ошибки в других контроллерах на маленьких дугах). Поэтому все дуги с радиусом меньше Minimun arc radius будут заменяться прямыми отрезками G01.
Get additional comments from objects properties - gcodetools может извлекать дополнительные параметры объектов из их свойств. Эти параметры можно отредактировать нажав правой кнопкой мышки на объекте и выбрав Свойства.
Comment Gcode - В этом поле можно задавать дополнительные коментарии которые будут отображаться перед началом обработки контура.

File - название файла для сохранения готового G-кода.
Add numeric suffix to filename - если включена, к имени файла будет автоматически добавляться числовой суффикс для предотвращения перезаписи старых экспортов, например output.ngc → output_0001.ngc.
Directory - папка в которую будет сохраняться G-код. Удостоверьтесь, что у вас есть права на запись в этой папку, в противном случае Gcodetools выдаст ошибку. Если в этой директории содержаться файлы header или footer, то они будут использованы в качестве заголовка и окончания G-кода вместо стандартных заголовков.
Z safe distance for G00 move over blanc - безопасная дистанция над поверхностью материала на которой будут выполняться перемещения от контура к контуру. Выставляйте это расстояние больше всех элементов крепления заготовки, для того, чтобы быть уверенным в том, что вы не врежетесь в них инструментом.
Units - единицы измерения мм или дюймы определяет постановку кода G20 или G21 в готовый G-код.
Post processor - заранее заданные пост процессоры для дополнительной подготовки Gcode.
Additional post processor - вы можете задать произвольный пост-процессор. Подробнее о возможностях и синтаксисе пост-процессоров смотрите по ссылке: http://cnc-club.ru/forum/viewtopic.php?f=33&t=78 (пока только на английском).
Generate log file - генерировать файл лога.
Full path to log file - полный путь к лог файлу.

При помощи вкладки Area можно создавать контуры для обработки площадей. Area использует внутренние функции Inkscape для создания контуров, а именно Dynamic offset (динамическая втяжка). После применения Area в рисунок будет добавлено необходимое количество динамических втяжек. Функция Area дает не самые лучшие результаты по качеству выборки материала. Если обработка ведется без нахлеста траекторий, то в острых углах будут оставаться необработанные участки.
Maximum area cutting curves - этот параметр нужен для того, чтобы избежать слишком большого количества динамических втяжек.
Area width - это онсновной параметр, от которого зависит количество добавленных контуров. Количество контуров равно Area width/Tool D (ширина контура/диаметр инструмента). Ширина контура это не ширна в общем смысле, это толщина в самом толстом месте.
Area tool overlap - параметр задающий нахлест траекторий. Это может быть необходимо для получения более чистого результата. 0.0 - означает без нахлеста, 0.9 - практически полный нахлест.

Fill area - функция служит для заполнения площади контура прямыми линиями. Заполнять можно по двум алгоритмам - зигзаг и спираль. Эта функция самая стабильная из всех функций по обработке площади, т.к. не требует сложных вычислений.
Area fill angle - угол наклона прямых. 0 - вертикальные линии.
Area fill shift - сдвиг "фазы" заполнения линиями (от 0 до 1).
Area fill overlap - нахлест траекторий. Нужен для получения более качественной обработки и более простого съема материала. (0 - без нахлеста, 0.9 - практически полный нахлест)
Filling method - выбор метода заполнения - зигзаг или спираль.

Area artefacts Т.к. функция отступа кривой безье очень не простая, иногда она дает артефакты. А при увеличении количества отступов вероятность появления ошибок растет. Для поиска этих ошибок разработана функция Area artefacts. Она ищет контуры маленького размера и в зависимости от выбранного действия выделяет их цветом или стрелкой или удаляет.
Aretefact diametr - максимальный размер артефакта, все контуры меньше заданного размера будут выделены\удалены.
Action - действие производимое с артефактами. Выделить цветом, выделить стрелкой, удалить.

Orientation points (точки ориентации) нужны для позиционирования материала детали на станке/рисунке. При помощи точек ориентации можно задать масштаб, перемещение, поворот, растяжение по осям.
Если необходима только простая ориентация без не пропорциональных растяжений по осям и отражений, используйте ориентацию по двум точкам.
После применения Orientation points на рисунок добавятся две или три точки ориентации. Точка ориентации это стрелка с координатами. Положение точки определяется исходя из положения вершины стрелки.
При помощи точек ориентирования можно ориентировать деталь по конкретным точкам, для этого выберите любые две или три точки на детали, переместите в них точки ориентации и задайте для них желаемые координаты.
В самом простом случае, точки ориентации просто добавляются в рисунок и задают начало координат.
Точки ориентации применяются к текущему слою и все слоям ниже (до следующего слоя имеющего свои точки ориентации).
Внимание! Не разгруппировывайте точки ориентации! Это приведет к их дисфункции! Для того, чтобы переместить только одну точку просто войдите в группу двойным щелчком мыши на группе. Координаты можно редактировать при помощи инструмента Text (F8) не разгрупповывая элементы.
Orientation type - ориентация по двум или трем точкам.
Z surface - высота (координата Z) поверхности материала (начало обработки)
Z depth - глубина (координата Z) обработки.
_Units _- единицы измерения, для удобства стандартные точки ориентации добавляются в точках (0,0), (0,100) и (100,0) для миллиметров и (0,0), (0,5) и (5,0) для дюймов.

Tools library (библиотека инструментов). Библиотека инструментов создает шаблон для описания конкретного типа инструментов.
В описании инструмента можно задавать различные параметры, начиная с простых, таких как диаметр, скорость реза, заглубление за проход, и оканчивая более сложными - G-код до и после контура, которые позволяют задавать, например, коды включения или выключения шпинделя или другого режущего интсрумента.
Для того, чтобы увидеть, что будет реально вырезано, можно воспользоваться Inkscape и не использовать внешние инструменты. Для этого:
Такая обработка может понадобится, когда рисунок или деталь находится над (или под) основным массивом материала.
Создаем, или загружаем нужные контуры.

Добавляем точки ориентации (не обязательный шаг, точки ориентации для мм добавятся автоматически, если они не были созданы заранее). Расширения – Gcodetools – Orientation points (см. главу "Вкладка Orientation points" данного руководства). Выставляем глубину фрезерования и другие параметры, жмем «Применить», «Закрыть». Полученные точки начала координат будут в левом нижнем углу листа, перетаскиваем их (не разгруппировывая) в необходимую позицию относительно рисунка (к примеру, в левый нижний угол). (Вместо перемещения точек ориентации можно переместить сам рисунок.)

Добавляем описание инструмента. Расширения – Gcodetools – Tools library (см. главу "Вкладка Tools library" данного руководства), выбираем тип инструмента и жмем «Применить», «Закрыть». В изображение будет добаленно описание инструмента, основные параметры:
tool change gcode - Gкод для смены инструмента

Выделяем контур, и выполняем Расширения – Gcodetools – Area (см. главу "Вкладка Area" данного руководства), выставляем количество кривых и ширину обрабатываемой площади по контуру, жмем «Применить», «Закрыть». Расширение добавляет в рисунок траектории инструмента.

Разгруппировываем полученный объект (Ctrl+Shift+G). Удаляем оригинальный рисунок.

Преобразовываем все оставшиеся траектории в контуры (Ctrl+Shift+C), с помощью инструмента редактирования узлов (F2), устраняем артефакты и редактируем ошибочные участки.
Для поиска и удаления артефактов можно воспользоваться инструментом Area artifacts (см. главу "Вкладка Area artifacts" этого руководства).

(Не обязательный шаг) На вкладке «Path to Gcode» выставляем допуск интерполяции и глубину разбиения кривых, жмем «Применить», «Закрыть».

В папке назначения будет создан файл с именем output_хххх.ngc, в котором будет содержаться Gкод для заданной обработки. Открываем файл в системе ЧПУ и проверяем полученную программу.
