eef9e8666275b3cffb30a7cdd0348a830c1085d3
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 — используйте, модифицируйте и делитесь.
Languages
JavaScript
100%