96 lines
6.0 KiB
Markdown
96 lines
6.0 KiB
Markdown
# 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‑коды будут подсвечены как **ошибочные**.
|
||
|
||
## 📦 Установка
|
||
|
||
1. Скачайте `.vsix` или установите из [Visual Studio Marketplace](#) (ссылка после публикации).
|
||
2. В VS Code: `Ctrl+Shift+P` → **Extensions: Install from VSIX** → выберите файл.
|
||
3. Расширение активируется автоматически для файлов с кодом BSNC.
|
||
|
||
## 🚀 Использование
|
||
|
||
- Откройте файл программы ЧПУ (с расширением или без).
|
||
- Подсветка и цвета применяются автоматически.
|
||
- Сниппеты:
|
||
- `ucg` → `(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3)`
|
||
- `urt` → `(URT,0)`
|
||
- `rpt` → `(RPT,E0)`
|
||
- Недопустимые G‑коды будут выделены красным фоном.
|
||
|
||
## ⚙️ Кастомизация
|
||
|
||
Если хотите изменить цвета:
|
||
1. Откройте `settings.json`.
|
||
2. Добавьте свои правила в `editor.tokenColorCustomizations.textMateRules` — они перекроют встроенные.
|
||
|
||
## 📄 Лицензия
|
||
|
||
MIT — используйте, модифицируйте и делитесь.
|