Gcodetools - plug-in Inkscape для экспорта в Gcode

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

Gcodetools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Сгенерированный Gкод в EMC2 (562464 просмотра) <a class='original' href='./download/file.php?id=507&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (21.99 КБ)</a>
Сгенерированный Gкод в EMC2
ТипРасширение векторного
графического редактора Inkscape
РазработчикКоманда разработчиков Gcodetools
Написана наPython
ОСКроссплатформенное программное
обеспечение (Windows, Linux,
MacOS)
Версия1.7 от 01.07.2010
ЛицензияGNU GPL
Количество загрузок7800+

Gcodetools - CAM расширение для Incscape

Gcodetools это расширение векторного редактора Inkscape, которое позволяет подготавливать и экспортировать векторную графику в Gкод.

Gcodetools и Inkscape распространяются под лицензией GNU GPL, т.е. бесплатно, в т.ч. для коммерческого использования. Обе программы кросплатформенные, есть дистрибутивы под Windows, Linux и MacOS.
Для оформления темы нам нужны скриншоты и фотографии Ваших работ, публикуйте Ваши фотографии в этой теме.
Возможности Gcodetools (для просмотра содержимого нажмите на ссылку)

Возможности новой версии Gcodetools 1.6

Экспорт в Gcode
Screqnshot.png (565706 просмотров) <a class='original' href='./download/file.php?id=123&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (154.76 КБ)</a>
Gcodetools cnc обработка площади (558586 просмотров) <a class='original' href='./download/file.php?id=771&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (147.75 КБ)</a>
Gcodetools cnc обработка площади
Gcodetools CAM для токарных станков с чпу (560225 просмотров) <a class='original' href='./download/file.php?id=643&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (21.98 КБ)</a>
Gcodetools CAM для токарных станков с чпу
Gcodetools гравировка от Rene (560335 просмотров) <a class='original' href='./download/file.php?id=632&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (233.84 КБ)</a>
Gcodetools гравировка от Rene
Bears by Durachko (531568 просмотров) <a class='original' href='./download/file.php?id=5430&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (89.93 КБ)</a>
Bears by Durachko
  • Экспорт кривых в Gcode
  • Аппроксимация с использованием круговой интерполяции (G02 и G03)
  • Автоматическое разбиение кривых для достижения заданной степени точности
  • Обработка со сменой инструментов
  • Экспорт Gкода в параметрической или обычной формах
  • Добавление собственных заголовков и окончаний
  • Выбор единиц измерения
  • Многопроходная обработка
  • Автоматическое добавление цифрового суфикса к назваию сохраняемого файла
Обработка на токарном станке
  • Создание траекторий для обработки детали на токарном станке
  • Расчет чистового прохода
  • Задание заглубления при чистовом проходе
  • Задание количества чистовых проходов
  • Два различных метода вычисления чистовых проходов
  • Замена стандартных осей
Обработка площади контуров
  • Создание траекторий для обработки площади контуров
  • Возможность коррекции созданных траекторий
Гравировка фигурными фрезами
  • Создание траекторий для обработки контуров фигурной фрезой
  • Задание произвольной формы фрезы
Библиотека инструментов
  • Здание различных параметров инструмента и обработки (диаметр инструмента, скорость обработки, заглубление за проход, скорость заглубления, задание произвольного кода перед/после заглубления, форма инструмента, произвольный код смены инструмента)
  • Возможность копирования инструментов
  • Возможность обработки со сменой инструмента
Система ориентирования
  • Задание масштабирования по всем осям
  • Задание поворотов в плоскости ХY
  • Задание смещения по всем осям
  • Ориентация по произвольным точкам
Постпроцессор
  • Создание произвольной программы постпроцессора или выбор из стандартного набора
  • Масштабирование и смещение Gcode
  • Произвольная замена команд (в том числе одновременная замена)
  • Параметризация Gcode
  • Округление длинны дробной части чисел в Gкоде
Предварительная проверка рисунка
  • Выделение маленьких контуров (возможных артефактов area)
  • Проверка принадлежности инструментов
  • Проверка порядка обработки
Плоттерная резка
  • Экспорт в Gкод для плоттера с тангенциальным ножом. Четвертая ось A - угол наклона ножа.
Общие
  • Проверка наличия обновлений.

вверх
Лицензия (для просмотра содержимого нажмите на ссылку)

Лицензия

Gcodetools выпускается под лицензией GNU GPL. Эта лицензия дает Вам следующее права:
  • запуска программы, с любой целью;
  • изучения того, как программа работает, и её модификации (предварительным условием для этого является сохранение лицензии GNU GPL);
  • распространения копий;
  • улучшения программы, и выпуска улучшений в публичный доступ (предварительным условием для этого является сохранение лицензии GNU GPL).
Подробнее см здесь: http://ru.wikipedia.org/wiki/GPL
вверх
Установка (для просмотра содержимого нажмите на ссылку)

Установка

Windows
Распакуйте архив и скопируйте все файлы в каталог Program Files\Inkscape\share\extensions\
Linux
Распакуйте архив и скопируйте все файлы в каталог /home/<имя пользователя>/.config/inkscape/extensions/
или /usr/share/inkscape/extensions/ и перезапустите inkscape
вверх
Видео уроки (для просмотра содержимого нажмите на ссылку)

Видео уроки

Русский язык

Видео уроки от Steel.ne на русском языке: Gcodetools - plug-in Inkscape для экспорта в Gcode #403

Английский язык

Видео уроки от Bitviper (на форуме Fizgig) (англ.):
http://www.youtube.com/watch?v=yUTVOTDbDRI
http://www.youtube.com/watch?v=zMQplyEo9Bc
Еще один видео урок на английском:
http://www.youtube.com/watch?v=4jYKMAjzK3A
Пример использования Gcodetools за 1 минуту от Stirlingengr:
http://www.youtube.com/watch?v=aflrnD9OEvA
Использование и уроки (для просмотра содержимого нажмите на ссылку)

Использование и уроки

Документация: Gcodetools документация [В разработке] #23
Tutorial гравировке узоров от Dormouse ver 1.5b: http://kalyaev.com/2010/20100402/tut01/tut01.html
Tutorial по обработке площади контура ver 1.2: Gcodetools - plug-in Inkscape для экспорта в Gcode #10
Tutorial по созданию шестеренок ver 1.2: http://www.cnc-club.ru/forum/viewtopic. ... art=0#p154
Manual для версии 1.2 в этом посте:Gcodetools - plug-in Inkscape для экспорта в Gcode #9
Подробное описание для версии 1.1 в этом посте: http://www.cnc-club.ru/forum/viewtopic. ... rt=40#p100

Справка по пре- и пост-процессорам Gcodetools - пре- и пост-процессоры #1
Загрузить последнюю версию (для просмотра содержимого нажмите на ссылку)

Загрузить последнюю версию

Последняя стабильная версия Gcodetools 1.7
gcodetools.tar.gz
Gcodetools 1.7
(75.25 КБ) 26682 скачивания
Предыдущие версии(ver 1.6)
gcodetools-1.6.tar.gz
Gcodetools 1.6
(56.6 КБ) 6173 скачивания
(ver 1.5)
gcodetools.tar.gz
Gcodetools 1.5
(21.32 КБ) 4589 скачиваний
(ver 1.4)
gcodetools.tar.gz
(14.72 КБ) 4371 скачивание
(ver 1.2)
extensions.tar.gz
(9.01 КБ) 4106 скачиваний

Dev версия

Вы можете опробовать версию, находящуюся в разработке, загрузив ее с github
Через веб интерфейс: https://github.com/cnc-club/gcodetools
Или через git командой git clone git@github.com:cnc-club/gcodetools.git

Перед работой необходимо создать файлы inx путем запуска скрипта python create_inx.py
Благодарности (для просмотра содержимого нажмите на ссылку)

Благодарности

Разработчики:
  • Николай Дробченко (Nick)
  • Владимир Каляев (Dormouse)
  • Henry Nicolas (Alfcnc)
  • Chris Lusby Taylor (ChrisInNewbury)
Переводчики:
  • John Brooker (greybeard из cnczone.com)
вверх
Помощь в разработке (для просмотра содержимого нажмите на ссылку)

Помощь в разработке

На данный момент в разработке находятся:
  • Расширение для плазменной резки
  • Расширение для токарных станков
  • Расширение для плоттеров
Вы можете помочь улучшить Gcodetools создавая новые уроки и описания, давая советы, делая отчеты об ошибках, помогая разрабатывать новые функции.
Вы можете:
  • Написать отчет об использовании
  • Улучшить справку и уроки
  • Опубликовать Gкод / SVG / или программный код
  • Загрузить фото/видео готовых работ или опубликовать историю разработки
  • Написать отчет об ошибках
  • Помочь в разработке новых функций
  • Помочь в написании уроков и справки
  • Предложить новые функции
вверх
Протестировано на или системные требования (для просмотра содержимого нажмите на ссылку)

Протестировано на

Linux
Ubuntu 9.10 - Ubuntu 14.04 и далее + inkscape 0.48, inkscape 0.47, inkscape 0.46
FreeBSD 9, FreeBSD 10 + Inkscape 0.48.2.
Windows
Windows XP, Windows Vista, Windows 7 + inkscape 0.46, inkscape 0.47, inkscape 0.48
MacOS
Есть сообщения о работоспособности на MacOS.
вверх
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Последние сприншоты:

На первом цветами обозначены синий и зеленый круговая обработка (Gкод G02 и G03), красной линейная обработка (Gкод G01).
Количество узлов в исходном контуре 6096. В конечном файле получилось около 30 000 строк :) (размер около 1,2 мб). Обработка в два захода.
Время генерации, включая время отрисовки inkscape около 20 сек.
Конвертация в Gcode герба (211357 просмотров) <a class='original' href='./download/file.php?id=99&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (1.09 МБ)</a>
Конвертация в Gcode герба
На и третьем все линии тонкие и синие, для того чтобы можно было оценить неточности.
Конвертация в Gcode герба (211357 просмотров) <a class='original' href='./download/file.php?id=100&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (1.05 МБ)</a>
Конвертация в Gcode герба
Конвертация в Gcode герба (211357 просмотров) <a class='original' href='./download/file.php?id=101&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (1023.52 КБ)</a>
Конвертация в Gcode герба
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Еще примерчик перевода логотипов в Гкод.
Вложения
Logo to G-code (211344 просмотра) <a class='original' href='./download/file.php?id=105&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (222.22 КБ)</a>
Logo to G-code
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Несколько скриншотов готового G-кода в EMC2:
EMC2 Gcode (211343 просмотра) <a class='original' href='./download/file.php?id=107&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (74.35 КБ)</a>
EMC2 Gcode
EMC Gcode (211343 просмотра) <a class='original' href='./download/file.php?id=108&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (87.73 КБ)</a>
EMC Gcode
EMC Gкод (211343 просмотра) <a class='original' href='./download/file.php?id=109&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (103.96 КБ)</a>
EMC Gкод
EMC2 G-код (211343 просмотра) <a class='original' href='./download/file.php?id=110&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (154.76 КБ)</a>
EMC2 G-код
EMC2 Gcode (211343 просмотра) <a class='original' href='./download/file.php?id=111&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (185.98 КБ)</a>
EMC2 Gcode
ECM2  сохранить в Gcode (211343 просмотра) <a class='original' href='./download/file.php?id=113&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (80.43 КБ)</a>
ECM2 сохранить в Gcode
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Manual
Gcode tools ver. 1.0.0.

Интерфейс
man_0001.png (211510 просмотров) <a class='original' href='./download/file.php?id=116&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (89.3 КБ)</a>
1.,2. Имя файла и директорий в который будет сохранен готовый Gкод. Если в директории присутствуют файлы header или footer, то они будут использованы вместо стандартных заголовков.
Внимание! У Вас должны быть права на запись в выбранном директории! (Например Вы можете выбрать Ваш домашний директорий. (Мой: "/home/nick"))


3. Описание поведения координаты Z.
  • Z safe - Z координата безопасной высоты перемещения инструмента над обрабатываемой деталью
  • Z surface - Z координата поверхности детали
  • Z deph - Глубина обработки
  • Z step for each cicle - Глубина обработки за каждый заход
4. Выбор единиц измерения. Внутренняя единица измерения Inkscape - px, ее величина используется для перевода кривых в Gcode без приведения к выбранным единицам. Т.е. если деталь в Inkscape имеет ширину 10px, то при единице измерения "мм" ее размер будет 10мм, при единице измерения "in" - 10 дюймов.

5. Диаметр инструмента. Используется при обработке площади кривой.

6. Максимальное количество кривых для обработки площади. Введено для исключения бесконечных циклов.
Радиус для подготовки кривых с помощью Inkscape.

7. Выбор функции:
  • Curve to Gcode - преобразование кривых в Gкод
  • Area to Gcode - обработка площади кривой. Достаточно медленный метод. Сложность алгоритма O(n^2) где n-количество узлов. Не советую запускать для кривых со 100 узлами и более.
  • Prepare Area using Inkscape - Создает необходимое количество кривых для обработки внутренней площади кривой.
8. Минимальный радиус дуги. Очень важный параметр. Задает минимальный радиус дуги для кода G02. В случае, если радиус дуги очень маленький EMC2 может выдать ошибку: Zerro arc radius!
Внимание! Значение по умолчанию = 0.05. при использовании русской локали стандартный разделитель дробной части "," а не "." и поэтому все все дробные числа округляются в меньшую сторону т.е. "0.05" в русской локали равно "0"!

9. Значения масштабирования и отступов по осям X Y Z.
Есть подозрение, что масштаб по осям X и Y должен совпадать, иначе все дуги окружностей превратятся в дуги эллипсов, что не соответствует кодам G02 и G03.

Пример работы скрипта
Изображение показывает основные этапы преобразования контуров в Gкод:
Gcode tools plug-in tutorial (2600*1300 px png ~ 700Kb) (211510 просмотров) <a class='original' href='./download/file.php?id=117&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (752.7 КБ)</a>
Gcode tools plug-in tutorial (2600*1300 px png ~ 700Kb)
Готовый gкод контура из примера:
gnu.ngc
(27.14 КБ) 5010 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Короткая версия туториала:
Вложения
g83147_005.png (211471 просмотр) <a class='original' href='./download/file.php?id=145&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (187.21 КБ)</a>
Screqnshot1_800px.png (211471 просмотр) <a class='original' href='./download/file.php?id=146&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (77.49 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Очередной скриншот Лофта:
Сначала создаем сечения, затем траекторию (траектория - условное название она влияет только на расстояния между сечениями и на сглаживание), затем создаем лофт.
Вложения
rect11412.png (211383 просмотра) <a class='original' href='./download/file.php?id=157&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (187.58 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Готова новая версия Gcode tools v. 1.2.

Внимание последняя версия находится в шапке этой темы!
extensions.tar.gz
(8.96 КБ) 5535 скачиваний
Что изменилось в новой версии:
    • "Curve to Gcode" теперь называется "Path to Gcode", т.к. в Inkscape кривые называются Path.
    • Добавлено автоматическое разбиение кривых. Если ошибка аппроксимации сегмента кривой превышает заданное значение, то сегмент разбивается по палам. Разбиение происходит до тех пор, пока не ошибка не станет приемлемой или количество разбиений не достигнет заданного значения.
      Соответственной добавлены два поля:
      • Biarc interpolation tolerance - допуск интерполяции кривой
      • Maximum splitting depth - максимальная глубина разбиения
    • Добавлена небольшая оптимизация холостого прохода. Каждый раз при выборе следующей кривой, выбирается та, у которой начало ближе всего к концу предыдущей.
  • Удалена функция Area to Gcode, т.к. она была очень медленной, не позволяла менять полученные результаты и содержала достаточно много ошибок.
  • "Area inkscape" теперь "Calculate area curves" (Рассчитать кривые площадки) это название лучше описывает действие функции.
    • Теперь стало гораздо проще пользоваться этой функцией -нет необходимости преобразовывать кривую в Динамическую втяжку, просто выбираете кривую вводите значения радиуса оффсета и нажимаете применить.
Функции лофта и гравировки пока в разработке.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Manual ver. 1.2.

Интерфейс

Вкладка Параметры
Снимок-GCODE tools-5.png (211207 просмотров) <a class='original' href='./download/file.php?id=170&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (33.42 КБ)</a>
Scale и offset along axis задают масштаб и смещение по трем осям. При этом, если "Generate not parametric code" будет выбран, то все вычисления масштаба и смещений будут выполнены непосредственно плагином и полученый Gкод будет обычным кодом с четко заданными координатами, в противном случае Gкод будет выглядеть следующим образом:

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

"G03 X[428*#5+#8] Y[-590*#5+#9] Z[-20*#7+#10] I[0*#5] J[45*#5]"
и в начале кода будет заголовок в котором можно вручную задать смещения и масштаб по трем осям (масштаб осей X и Y зафиксирован чтобы не испортить круговую интерполяцию) и высоту холостого прохода:

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

#4  = 700.000000 (Feed)
#5  = 1.000000 (Scale xy)
#7  = 1.000000 (Scale z)
#8  = -300.000000 (Offset x)
#9  = 300.000000 (Offset y)
#10 = 0.000000 (Offset z)
#11 = 10.000000 (Safe distanse)
Таким образом значительно упрощается пост-обработка, поэтому, если Ваш контроллер/программный контроллер поддерживает использование параметров лучше не включать опцию "Generate not parametric code".

Minimum arc radius - задает минимальное значение радиуса для команд G02 и G03, все дуги имеющие меньший радиус будут заменены прямыми линиями. Этот параметр необходим, т.к. при очень маленьком значении радиуса значении радиуса, управляющая программа может выдать ошибку. Например, ЕМС выдает ошибку если радиус дуги меньше 0,02 мм.

Вкладка Preferences
Снимок-GCODE tools-6.png (211207 просмотров) <a class='original' href='./download/file.php?id=171&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (33.13 КБ)</a>
File - имя файла в который будет сохранен Gкод.
Directory - имя директория в который будет сохранен Gкод. Если это директорий содержит файлы 'header' и/или 'footer' то их содержимое добавится к готовому Gкоду вместо стандартных заголовков и окончаний.
Внимание! У Вас должны быть права на запись в указанном директории!
Z safe - координата Z для холостого прохода.
Z surface - координата Z поверхности обрабатываемой детали.
Z depth - координата Z глубины обработки.
Z step for each cycle - величина заглубления при каждом шаге многопроходной обработки. Многопроходная обработка рассчитывается автоматически если Z surface - Z depth > Z step.
Feed rate - скорость обработки.
Unit - елиница измерения. Внимание! Значение этой параметра влияет только на одну строку (в заголовок добавляется "G21 (All units in mm)" или "G20 (All units in inch)")никаких дополнительных вычислений не производится. Этот плагин использует внутренние единицы Inkscape - px и они напрямую переводятся в единицы измерения в Gкоде. Т.е. если в Inkscape деталь имеет ширину 10px и выбраны миллиметры, то готовая деталь будет иметь ширину 10мм, если выбраны дюймы, то деталь будет иметь ширину 10 дюймов.

Tool diameter - диаметр инструмента в дюймах.

Вкладка Path to Gcode
Снимок-GCODE tools-7.png (211207 просмотров) <a class='original' href='./download/file.php?id=172&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (24.41 КБ)</a>
Biarc interpolation tolerance - каждый раз когда вычисляется аппроксимация сегмента кривой, вычисляется расстояние между кривой и ее аппроксимацией. Если это расстояние будет больше заданного, тогда сегмент будет разбита на два сегмента, каждый из которых будет заново аппроксимироваться.
Maximum splitting depth - определяет максимальное количество разбиений одного сегмента. (количество полученных сегментов растет как 2^n, т.е. при Maximum splitting depth = 5 один сегмент может быть заменен 32 сегментами (если раньше не достигнется необходимая точность))

Вкладка Area
Снимок-GCODE tools-8.png (211207 просмотров) <a class='original' href='./download/file.php?id=173&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (24.57 КБ)</a>
Maximum area cutting curve - Максимальное количество кривых, которое будет создано для заполнения площади фигуры (если Area radius не достигнется раньше).
Area radius - радиус последнего оффсета. Фактически "радиус" фигуры. Формально это максимум минимальных расстояний от каждой точки фигуры до ее границы. Если радиус меньше 0, то покрываться будет не внутренняя площадь фигуры а "внешняя".
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Gcode tools ver. 1.2 tutorial

Рассмотрим возможности расширения Gcode tools.
В этом туториале мы рассмотрим возможности расширения Gcode tools для обработки площади контура.
1. Рисуем/загружаем контур. Для примера я взял логотип cnc-club.ru
Screenshot-hello_world.svg - Inkscape.png (211135 просмотров) <a class='original' href='./download/file.php?id=198&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (125.73 КБ)</a>
Логотип в формате svg:
logo_0002.svg
(100.37 КБ) 3749 скачиваний
2. Если Ваш рисунок состоит из нескольких контуров, содержит тексты, эллипсы, прямоугольники, группы и т.д., то делаем следующее:
Контур -> Оконтурить объект (Shift+Ctrl+C), потом Объект -> Разгруппировать (Ctrl+Shift+G), при необходимости повторять до тех пор пока в статус баре не будет написано что-то похожее на : "3 объекта типа Контур" или "Контур (400 узлов)".
3. Затем объединим все получившиеся контуры в один: Контур -> Сумма (Ctrl+"+").
4. Рисуем прямоугольник помещаем его на задний план (Page Down или End) и центруем его относительно нашего контура (Ctrl+Shift+A).
Screenshot-hello_world.svg - Inkscape-3.png (211135 просмотров) <a class='original' href='./download/file.php?id=199&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (145.54 КБ)</a>
5. Выделяем контур и прямоугольник Контур -> Разность (Ctrl+"-").
Screenshot-hello_world.svg - Inkscape-4.png (211135 просмотров) <a class='original' href='./download/file.php?id=200&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (145.65 КБ)</a>
Подготовка контура закончилась!
6. Рассчитываем кривые покрывающие площадь контура: Расширения -> Gcode tools...
Заполняем поля Tool diameter во вкладке Preferences - диаметр фрезы
Открываем вкладку Area, и заполняем параметр Area radius. Сюда нужно вставить ширину самого толстого места контура (самое толстое место от любой части конура до любой другой части, включая внутренние части). Проще всего измерить ширину при помощи инструмента перо, во время рисования в статус баре пишется длина контура.
Выбираем Calculate area curves.
Нажимаем применить.
Screenshot-hello_world.svg - Inkscape-5.png (211135 просмотров) <a class='original' href='./download/file.php?id=201&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (218.16 КБ)</a>
Иногда, для получения более хорошего результата, лучше преобразовать контур в Динамическую втяжку (Контур -> Динамическая втяжка) перед применением функции Calculate area curves.
Screenshot--home-nick-Рабочий стол-hello_world.svg - Inkscape.png (211135 просмотров) <a class='original' href='./download/file.php?id=202&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (232.87 КБ)</a>
7. После этих действий имеем группу с кривыми покрывающие площадь контура. Но в этих кривых могут быть дефекты.
8. Для устранения дефектов заходим в группу (двойной клик на группе). Выделяем все (Ctrl+A). Преобразуем в контуры Контур -> Оконтурить объект (Shift+Ctrl+C). И разбиваем контуры на составляющие (Ctrl+Shift+K). Стираем не нужные кривые, при необходимости правим остальные.
9. Все готово для экспорта в Gкод. Выбираем все полученные кривые, Расширения -> Gcode tools... во вкладке Preferences вводим параметры фрезеровки, директорию и имя файла, во вкладке Path to Gcode вводим параметры допуска интерполяции и максимального количество разбиений (обратите внимание, что при каждом разбиении сегмент контура делится на два, т.е. при значении максимального количества разбиений равном 5 сегмент может разбиться до 2^5 = 32 раз).
Выбираем Path to Gcode. Нажимаем применить.
Screenshot--home-nick-Рабочий стол-hello_world.svg - Inkscape-1.png (211135 просмотров) <a class='original' href='./download/file.php?id=203&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (255.34 КБ)</a>
После выполнения конвертации в изображение добавится группа отображающая рабочую траекторию инструмента.

Проверим что получилось:
Screenshot-output.ngc - AXIS-1.png (211135 просмотров) <a class='original' href='./download/file.php?id=204&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (44.56 КБ)</a>
Все хорошо, только я не попал в рабочую область станка :). Но это не беда, есть несколько вариантов решения этой проблемы:
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)
Со второго раза я попал в створ станка :)
Screenshot-output.ngc - AXIS-3.png (211135 просмотров) <a class='original' href='./download/file.php?id=206&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (49.32 КБ)</a>
Screenshot-output.ngc - AXIS-4.png (211135 просмотров) <a class='original' href='./download/file.php?id=205&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (60.65 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Вот пример обработки:
К сожалению не получилось довести обработку до конца - это был первый запуск самодельного станка, и в середине обработки начало подклинивать ось Х.
Размеры 270х140 мм, фреза 3,2мм время обработки 18 мин. Заглубление 11мм, материал пока пенопласт :) (это первый запуск станка :) ).
Вложения
cnc-club-00006.jpg (211134 просмотра) <a class='original' href='./download/file.php?id=207&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (256.47 КБ)</a>
cnc-club-00008.jpg (211134 просмотра) <a class='original' href='./download/file.php?id=208&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (244.31 КБ)</a>
onill
Новичок
Сообщения: 1
Зарегистрирован: 05 мар 2010, 14:31
Репутация: 0
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение onill »

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

Re: Inkscape plug-in для экспорта в Gcode

Сообщение dormouse »

1. Установить Inkscape http://www.inkscape.org/
2. Скачать "программу", РАСПАКОВАТЬ (чтобы два файла получились) в папку "Inkscape/share/extensions"
Уже распакованные - правой мышкой, "сохранить как" выложил на:
http://kalyaev.com/2010/20100307/gcode_tools.inx
http://kalyaev.com/2010/20100307/gcode_tools.py
3. Запустить Inkscape, нарисовать Pen замкнутый треугольничек размером с пол-страницы и выделить его
4. Выбрать в верхнем меню пункт "Extensions-->GCODE tools"
5. Поставить точку в "Calculate Area curves" и нажать Apply
6. приблизить масштаб и увидеть что вокруг треугольника серым появились дополнительные контуры

(более сложная часть)

7. Выделить одну из кривых, настроить пути в GCODE tools, переставить точку в "Path to G-code", apply
8. Выделенная кривая станет разноцветной, а в указанном месте появится g-code файл для станка
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение Nick »

Сегодня исправлена критическая ошибка.
В случае автоматического разбиения кривой, менялась координата Z. Что приводило к нерабочему/не правильному Gкоду.
Исправленная версия в шапке темы.

Описание ошибки:

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

gcode_tools.py line 241 было: 
			return biarc(sp1,sp2,depth+1,z1,zm)+biarc(sp2,sp3,depth+1,z1,zm)
должно быть:
			return biarc(sp1,sp2,z1,zm,depth+1)+biarc(sp2,sp3,z1,zm,depth+1)
Спасибо Pizza за баг репорт.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gcode tools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Разработка Gcode tools и ее обсуждение вынесены в отдельную тему: Разработка Gcode tools - плагна Inkscape для экспорта в Gкод.
Здесь будем отвечать на вопросы пользователей, вывешивать описания, новости и т.д..
mr.Iceman
Новичок
Сообщения: 10
Зарегистрирован: 14 фев 2010, 13:39
Репутация: 0
Откуда: Москва
Контактная информация:

Re: Gcode tools - plug-in Inkscape для экспорта в Gcode

Сообщение mr.Iceman »

Добрый день!

Взял Ваш учебный пример, повторил - работает! Спасибо за очень полезный плагин!

Однако...
Я создал новый файл. В нем разместил одну латинскую букву. Запускаю G-Code Tools.
Tool diameter - 1mm.
Изображение
http://www.tinypic.ru/?do=view&pic=2010 ... 09_841.png

Нажимаю на кнопку Применить. Получаю вот такое неожиданный результат:
Изображение
http://www.tinypic.ru/?do=view&pic=2010 ... 22_549.png

Ситуация воспроизводится стабильно.

В тоже время, буква E обрабатывается нормально.
Изображение
http://www.tinypic.ru/?do=view&pic=2010 ... 29_747.png

Что я делаю не так? :shock:

p.s. Не понял, как изображения можно вставить в сообщение.
Вложения
letter_d.svg
Векторный файл с буквой D
(3.03 КБ) 2631 скачивание
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gcode tools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Вы все делаете так.
Просто inkscape при создании Dynamic offset чуть-чуть переделывает контур (вроде делает так, чтобы начальная точка была верхней левой). Я попытался это повторить, но иногда получается не совсем так, скорее всего я не до конца понял, что он делает.

В общем, чтобы это исправить помогает перед применением плагина преобразовать объект в Dynamic offset (Динамическая втяжка) путем нажатия Контур -> Динамическая втяжка (Ctrl+J), при выбранном контуре.

ЗЫ Чтобы прицепить картинку нажмите добавить вложение, прикрепляете ее, а затем рядом с прикрепленным файлом появляется такая кнопочка:
такая кнопочка.png (210860 просмотров) <a class='original' href='./download/file.php?id=381&sid=34215ab7502dfdf8c455791abdb302a2&mode=view' target=_blank>Загрузить оригинал (101.65 КБ)</a>
При нажатии на нее в текст вставляется [attachment=0\]такая кнопочка.png[/attachment]
mr.Iceman
Новичок
Сообщения: 10
Зарегистрирован: 14 фев 2010, 13:39
Репутация: 0
Откуда: Москва
Контактная информация:

Re: Inkscape plug-in для экспорта в Gcode

Сообщение mr.Iceman »

Большое спасибо, workaround с динамической втяжкой помог!

Но на пути к счастью встала следующая пока неразрешимая для меня проблема.
root писал(а): Все хорошо, только я не попал в рабочую область станка :). Но это не беда, есть несколько вариантов решения этой проблемы:
1. Задать смещение системы координат в программном контроллере
2. Задать смещения в готовом Gкоде, просто отредактировав в обычном текстовом редакторе (gedit, блокнот) эти строки: (если вы оставили Generate not parametic code не выбранной)
Вот в этом и проблема. Я не смог вычислить алгоритм, по которому следует определять это самое смещение.
Понятно, что можно просто "пристреляться", однако это "не способ".
На данный момент у меня есть готовый рисунок в inkscape и есть заготовка строго по размерам чертежа.
Мне нужно четко совместить координаты рисунка и физические координаты заготовки. Так сказать, "выставить ноль". Что посоветуете?

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

Re: Gcode tools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Координаты в inkscape (то, что можно видеть снизу слева и в окошках) - это x=x, y = (y - высота рисунка), По идее, если вы поставите свой рисунок в точку (0,0), и настроите смещение по y = высоте рисунка, то координаты будут совпадать.

Прямо сейчас мы пишем функцию (можете посмотреть в этой ветке: http://www.cnc-club.ru/forum/viewtopic. ... t=220#p380), которая по трем заданным точкам будет автоматически позиционировать вашу деталь. Немного терпения... я думаю к выходным будет готова первая версия... :)
Если у Вас есть предложения, то это будет очень полезно, пока код не написан до конца :).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Gcode tools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Внимание! В версии 1.4 исправлен критический баг!
Аппроксимация кривых биарками давала не правильные результаты!
Исправленная версия в шапке.
Ответить

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