BSNC Syntax & Highlighting
Расширение для Visual Studio Code, добавляющее полноценную подсветку синтаксиса, автодополнение и цветовую схему для программ ЧПУ в формате BSNC / NC‑310.
✨ Возможности
- Подсветка G/M‑кодов
Разделение кода и числовой части, поддержка слитной и раздельной записи (G1X0Y0F500 , S600 M3 и т.д.).
- Подсветка трёхбуквенных кодов в скобках
(UCG , UAO , URT , RPT , ERP и др.) с разбором аргументов по типам: числа, переменные, строки.
- Подсветка переменных E
(E30=0 , ZE30 ) с раздельным цветом для имени и значения.
- Выделение начала и конца циклов
(RPT,...) и (ERP) — яркие цвета для мгновенного поиска в коде.
- Подсветка допустимых и недопустимых G‑кодов
Валидные коды из документации — обычный цвет, неизвестные — выделяются как ошибка.
- Подсветка комментариев
Однострочные (; ... ) и блочные в скобках.
- Встроенная цветовая схема
Все цвета для токенов уже встроены в расширение, интерфейс VS Code не меняется.
📋 Поддерживаемые G‑коды
Код |
Описание |
G00 |
Быстрое позиционирование |
G01 |
Линейная интерполяция |
G02 |
Круговая интерполяция по часовой стрелке |
G03 |
Круговая интерполяция против часовой стрелки |
G04 |
Выдержка времени, заданная в кадре |
G06 |
Сплайновая интерполяция |
G09 |
Замедление в конце кадра |
G17 |
Выбор плоскости интерполяции (оси 1 и 2) |
G18 |
Выбор плоскости интерполяции (оси 3 и 1) |
G19 |
Выбор плоскости интерполяции (оси 2 и 3) |
G20 |
Закрытие среды программирования GTL |
G21 |
Открытие среды программирования GTL |
G27 |
Непрерывная обработка с замедлением на углах |
G28 |
Непрерывная обработка без замедления на углах |
G29 |
Позиционирование от точки к точке |
G33 |
Нарезание резьбы с постоянным/переменным шагом |
G34 |
Нарезание резьбы с постоянным/переменным шагом |
G35 |
Синхронизированное начало движения со шпинделем |
G40 |
Отмена корректировки на профиле |
G41 |
Корректировка на профиле (инструмент слева) |
G42 |
Корректировка на профиле (инструмент справа) |
G70 |
Программирование в дюймах |
G71 |
Программирование в миллиметрах |
G72 |
Измерение точки с компенсацией радиуса |
G73 |
Измерение параметров отверстия |
G74 |
Измерение отклонения без компенсации радиуса |
G79 |
Программирование относительно нуля станка |
G80 |
Отмена постоянных циклов |
G81 |
Цикл сверления |
G82 |
Цикл растачивания |
G83 |
Цикл глубокого сверления |
G84 |
Цикл нарезания резьбы метчиком |
G85 |
Цикл рассверливания |
G86 |
Цикл развертывания |
G89 |
Цикл развертывания с остановкой |
G90 |
Абсолютное программирование |
G91 |
Программирование по приращениям |
G93 |
Подача в виде обратного времени |
G94 |
Подача в мм/мин или дюйм/мин |
G95 |
Подача в мм/оборот |
G96 |
Скорость вращения шпинделя, м/мин |
G97 |
Скорость вращения шпинделя, об/мин |
❗ Любые другие G‑коды будут подсвечены как ошибочные.
📦 Установка
- Скачайте
.vsix или установите из Visual Studio Marketplace (ссылка после публикации).
- В VS Code:
Ctrl+Shift+P → Extensions: Install from VSIX → выберите файл.
- Расширение активируется автоматически для файлов с кодом BSNC.
🚀 Использование
- Откройте файл программы ЧПУ (с расширением или без).
- Подсветка и цвета применяются автоматически.
- Недопустимые G‑коды будут выделены красным фоном.
🛠 BSNC Syntax & Snippets
Расширение для Visual Studio Code, добавляющее:
- Подсветку синтаксиса для управляющих программ BSNC / NC‑310
- Автодополнение с готовыми сниппетами для G/M‑кодов, циклов, переходов, подпрограмм, резьбы и перемещений
- Встроенную цветовую схему для токенов (интерфейс VS Code не меняется)
📦 Установка
- Склонируйте репозиторий или скачайте
.vsix файл.
- В VS Code:
Ctrl+Shift+P → Extensions: Install from VSIX → выберите файл.
- Расширение активируется автоматически для файлов с кодом BSNC.
⚡️ Сниппеты
Все сниппеты вызываются по префиксу — достаточно ввести его и выбрать шаблон из автодополнения.
Плейсхолдеры ${1:...} позволяют быстро вводить значения, переходя по Tab .
🔧 Управляющие конструкции
Префикс |
Шаблон |
Назначение |
ucg |
(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3) |
Универсальный геометрический элемент |
urt |
(URT,0) |
Цикл URT |
rpt |
(RPT,E0) |
Начало цикла повторений |
erp |
(ERP) |
Завершение цикла |
dis |
(DIS,"Описание") |
Комментарий или описание кадра |
evar |
E30=0 |
Объявление переменной |
🔁 Переходы
Префикс |
Шаблон |
Условие |
bnc |
(BNC,LABEL) |
Безусловный переход |
bgt |
(BGT,VAR1,VAR2,LABEL) |
Если VAR1 > VAR2 |
blt |
(BLT,VAR1,VAR2,LABEL) |
Если VAR1 < VAR2 |
beq |
(BEQ,VAR1,VAR2,LABEL) |
Если VAR1 = VAR2 |
bne |
(BNE,VAR1,VAR2,LABEL) |
Если VAR1 ≠ VAR2 |
bge |
(BGE,VAR1,VAR2,LABEL) |
Если VAR1 ≥ VAR2 |
ble |
(BLE,VAR1,VAR2,LABEL) |
Если VAR1 ≤ VAR2 |
🔩 Перемещения
Префикс |
Шаблон |
Назначение |
g0 |
G0X0Y0Z0 |
Быстрое позиционирование |
g1 |
G1 X0.0 Y0.0 Z0.0 F200 |
Линейное перемещение |
🧵 Резьба G33
Префикс |
Шаблон |
Тип резьбы |
g33 |
G33 Z3 K6 |
Постоянный шаг |
g33r |
G33 Z3 K6 R120 |
Многозаходная — 2-й заход |
g33r3 |
G33 Z3 K6 R240 |
Многозаходная — 3-й заход |
g33i+ |
G33 Z3 K6 I1 |
Возрастающий шаг |
g33i- |
G33 Z3 K6 I-1 |
Убывающий шаг |
g33u |
G33 U3 K6 |
Коническая резьба |
g33ir |
G33 Z3 K6 I1 R120 |
Переменный шаг + отклонение |
🧵 Резьба G34
Префикс |
Шаблон |
Тип резьбы |
g34 |
G34 Z3 K6 |
Постоянный шаг |
g34r |
G34 Z3 K6 R120 |
Многозаходная — 2-й заход |
g34r3 |
G34 Z3 K6 R240 |
Многозаходная — 3-й заход |
g34i+ |
G34 Z3 K6 I1 |
Возрастающий шаг |
g34i- |
G34 Z3 K6 I-1 |
Убывающий шаг |
g34u |
G34 U3 K6 |
Коническая резьба |
g34ir |
G34 Z3 K6 I1 R120 |
Переменный шаг + отклонение |
g34g09 |
G34 Z3 K6 G09 |
С торможением в конце |
🛠️ Циклы сверления и нарезания
Префикс |
Шаблон |
Назначение |
g83 |
G83 R5 Z-15 I2 K0.8 J1.0 |
Глубокое сверление с дроблением |
g83tmr |
G83 R5 Z-15 I2 TMR=2 |
Сверление с выдержкой времени |
g84 |
G84 R5 Z-15 K2 |
Нарезание резьбы с датчиком |
g84f |
G84 R5 Z-15 F280 |
Нарезание резьбы без датчика |
📐 Плоскости интерполяции
Префикс |
Шаблон |
Плоскость |
g17 |
G17 |
XY |
g18 |
G18 |
XZ |
g19 |
G19 |
YZ |
📏 Координатные системы
Префикс |
Шаблон |
Назначение |
g90 |
G90 |
Абсолютная система |
g91 |
G91 |
Приращения |
g79 |
G79 X0 Z0 |
Относительно нуля станка |
📂 Подпрограммы
Префикс |
Шаблон |
Назначение |
cls |
(CLS,P800/MP2) |
Вызов подпрограммы из памяти MPx |
cls0 |
(CLS,P800) |
Вызов без указания памяти |
🔄 Шпиндель
Префикс |
Шаблон |
Направление |
s0 |
S600,M3 |
По часовой стрелке |
s1 |
S600,M4 |
Против часовой стрелки |
📄 Лицензия
MIT — используйте, модифицируйте и делитесь.
⚙️ Кастомизация
Если хотите изменить цвета:
- Откройте
settings.json .
- Добавьте свои правила в
editor.tokenColorCustomizations.textMateRules — они перекроют встроенные.
📄 Лицензия
MIT — используйте, модифицируйте и делитесь.
| |