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 (620001 просмотр) <a class='original' href='./download/file.php?id=507&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 (623243 просмотра) <a class='original' href='./download/file.php?id=123&mode=view' target=_blank>Загрузить оригинал (154.76 КБ)</a>
Gcodetools cnc обработка площади (616123 просмотра) <a class='original' href='./download/file.php?id=771&mode=view' target=_blank>Загрузить оригинал (147.75 КБ)</a>
Gcodetools cnc обработка площади
Gcodetools CAM для токарных станков с чпу (617762 просмотра) <a class='original' href='./download/file.php?id=643&mode=view' target=_blank>Загрузить оригинал (21.98 КБ)</a>
Gcodetools CAM для токарных станков с чпу
Gcodetools гравировка от Rene (617872 просмотра) <a class='original' href='./download/file.php?id=632&mode=view' target=_blank>Загрузить оригинал (233.84 КБ)</a>
Gcodetools гравировка от Rene
Bears by Durachko (589105 просмотров) <a class='original' href='./download/file.php?id=5430&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 КБ) 29669 скачиваний
Предыдущие версии(ver 1.6)
gcodetools-1.6.tar.gz
Gcodetools 1.6
(56.6 КБ) 9457 скачиваний
(ver 1.5)
gcodetools.tar.gz
Gcodetools 1.5
(21.32 КБ) 7900 скачиваний
(ver 1.4)
gcodetools.tar.gz
(14.72 КБ) 7916 скачиваний
(ver 1.2)
extensions.tar.gz
(9.01 КБ) 7634 скачивания

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: Gcodetools - plug-in Inkscape для экспорта в Gcode

Сообщение Nick »

Steel.ne писал(а):И еще - regex я так понял работает только с одной строкой за раз?
да. можно добавить regexm или флаги для regex... хотя, там тоже нюансы... например в паттерне не должно встречаться (Subpath end) несколько раз, что не так просто.

ЗЫ у тебя фрагменты не совпадают :).
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение Nick »

ИМХО если сделать систему пост процессинга Gкода это даст больше возможностей ;).

Наверное регулярное выражение будет выглядеть как-то так:
(G0(?1|2|3)\s*(X[\d\-\.]+)\s*(Y[\d\-\.]+\s*).*\n
((?\(.*|G00?\s*Z[\d\-\.]\s*)*\n)*
(G00\s*\2\s*\3\n)
(после \n убрать перенос строки или поставить флаг, который игнорирует пробелы). Ну и мультилайн ко всему сделать но dot-all не ставить!
Аватара пользователя
Boris_B
Новичок
Сообщения: 18
Зарегистрирован: 15 июн 2012, 01:10
Репутация: 0
Контактная информация:

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

Сообщение Boris_B »

Nick писал(а):Конечна другой! :) Либо в консоле
sudo apt-get install inkscape
плюс пароль, когда спросит.
Или программы - что-то там внизу типа установить программы, или Система-Администрация-Менеджер пакетов, там поиск inkcape и выбрать/установить.
Но проще всего через консоль :).
Какая-то ерунда у меня получается. Под Windows программа inkscape поставилась без проблемм. А вот под Линукс - никак не хочет ставиться. Пробовал и через терминал, и через менеджер файлов - не находят они файл инстляции.
Копию экрана при попытке поставить через консоль прилагаю.
Вложения
Screenshot.jpg (3675 просмотров) <a class='original' href='./download/file.php?id=6177&mode=view' target=_blank>Загрузить оригинал (57.43 КБ)</a>
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

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

Сообщение 2cme »

После inkscape не надо писать ".exe".
Вложения
Screenshot.PNG (3667 просмотров) <a class='original' href='./download/file.php?id=6178&mode=view' target=_blank>Загрузить оригинал (422.92 КБ)</a>
Аватара пользователя
Boris_B
Новичок
Сообщения: 18
Зарегистрирован: 15 июн 2012, 01:10
Репутация: 0
Контактная информация:

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

Сообщение Boris_B »

Да я по разному пробовал. И так и этак - скорее всего, я изначально неправильно скопировал файл в систему (в начале на 3-4 странице был похожий случай). Типа надо из-под консоли, с правами админа и т.д. А так нет. Объяснение слабое, и не совсем понятное. Зачем такие геморрои на обычный Линукс накручивать... Вспоминаются слова "А вдруг завтра война, а я уставший?" :hehehe:
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

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

Сообщение 2cme »

Я устанавливал этими командами, в момент установки комп должен быть подключен к инету:

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

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

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

Сообщение Nick »

Boris_B писал(а):Да я по разному пробовал. И так и этак - скорее всего, я изначально неправильно скопировал файл в систему (в начале на 3-4 странице был похожий случай).
Ничего копировать не надо! Линукс сам находит самую последнюю версию, сам ее скачивает и сам устанавливает, и все!
Просто выполни то, что 2cme написал в консоли! (Скопировать Ctrl+Insert вставить в консоли - Shit+Insert )

( sudo apt-get update - это обновит список доступных пакетов, чтобы поставилась самая последняя версия )
Boris_B писал(а):Типа надо из-под консоли, с правами админа и т.д. А так нет.
Из под консоли удобнее, потом поймешь :). Права админа - чтобы злоумышленник не мог свое злоумышленье сотворить :).
Boris_B писал(а):Зачем такие геморрои на обычный Линукс накручивать...
Хочешь как ви винде, пожалуйста - ищи в нете файл inkscape.deb с последней версией, потом качаешь его, тыркаешь на него два раза, и наживаешь установить.
И посмотри, что проще, это или скопировать строчку в консоль ;).

ЗЫ когда работаешь в консоли, советую пользоваться кнопкой TAB, нажимаешь ее 1 раз - консоль пытается дописать команду, на сколько может. Нажимаешь второй - покажет список команд которые подходят к написанному.
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

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

Сообщение 2cme »

Steel.ne писал(а): Про что еще рассказать?
Это тему пожалуйста сделайте: Создание УП для Graffiti-cnc
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Я тут подумал - все то, что про граффити, порще переписать кинематику станка в LinuxCNC, и не парить мозг всей этой интерполяцией. Разве что "бантики" на углах оставить...

А что есть прототип, на котором можно все это испытать?
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

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

Сообщение 2cme »

Вот тему создал.
Прототип уже собираю.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

А как сделать вот такую вот выборку с торца?
rect2983.png
rect2983.png (1.59 КБ) 3627 просмотров
Т.е. есть некий листовой материал и нужно с торца сделать выборку на всю глубину, причём с минимумом холостых перемещений, в идеале эдакой вогнутой змейкой.
Последний раз редактировалось Serg 04 июл 2012, 17:38, всего редактировалось 1 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Попробуй area, он должен создать траекторию, которую ты хочешь...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Почти получилось. Только из-за подпрыгиваний на безопасную высоту нельзя пользовать чисто торцевые фрезы.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

А вот что за нафик?
p.png (3585 просмотров) <a class='original' href='./download/file.php?id=6383&mode=view' target=_blank>Загрузить оригинал (81.16 КБ)</a>
Контур имеет правильный размер, а путь создаётся в одном случае с отступом внутрь (на 0.3 мм), а в другом наружу и отверстия получаются меньше расчётных.
Прикладываю SVG, там два таких отверстия, сначала было создано верхнее, потом путём копирования было сделано внешнее, потом всё объекты преобразованы в контур, каждому сделана динамическая втяжка на 1.5 мм - в результате все пути мимо контуров. :thinking:
G-код не прикладываю - там размеры соотв. нарисованному пути, собственно в процессе резки на глаз стала заметна разница в отверстиях.
Пробовал gcodetools-1.7 и gcodetools-dev.

P.S. А в "зелёном" описании инструмента "spindle rpm" не реализовано или это баг?
Вложения
cnc1.svg
(50.18 КБ) 881 скачивание
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Это потому, что контур не совсем контур, а динамическая втяжка, если у объекта есть трансформации, то втяжка будет реализовываться по разному.
Вообще Gcodetools использует параметр d, который есть во всех контурах и определяет их геометрию. Втяжки не поддерживаются форматом svg, поэтому чтобы их сохранять inkscape использует параметры
inkscape:original - содержащий геометрию оригинального контура
inkscape:radius - тут все понятно
и sodipodi:type = inkscape:offset, который говорит inskcape что это втяжка.

А для совместимости с форматом svg, inkscape создает параметр d, который задает результирующий оффсет. Его то и берет Gcodetools.


В общем :), лучше ко всем втяжкам применять Контур - Оконтурить объект (Ctrl+Shift+C).
UAVpilot писал(а):P.S. А в "зелёном" описании инструмента "spindle rpm" не реализовано или это баг?
пока не знаю :). Надо проверить...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Понятно. Вобщем перед созданием пути полезно всему чертежу сделать оконтуривание.

Продолжаю приставать: ;)
Задача: нужно отрезать некий кусок от заготовки, например сделать всё ту-же вырезку
rect2983.png
rect2983.png (1.59 КБ) 3570 просмотров
но уже не по площади, а отрезать по контуру. В данном случае делаем дугу (сектор элипса) и получаем холостой прогон между "углами".
Пробовал разорвать контур, но почему-то не получилось, видимо я ещё плохо освоил термины inkscape.

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

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

Сообщение Nick »

Что-то не понимаю, что именно надо отрезать... нарисуй линией...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение Nick »

Т.е. тебе надо просто пол окружности отрезать и пол прямоугольника?
Тогда заходим в режим редактирования контура и удаляем все не нужное, не забываем пользоваться кнопочками:
Вложения
inkscape nodes.png (3562 просмотра) <a class='original' href='./download/file.php?id=6390&mode=view' target=_blank>Загрузить оригинал (147.52 КБ)</a>
Ответить

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