Files
nc310-syntax/README.md

235 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BSNC Syntax & Highlighting
Расширение для Visual Studio Code, добавляющее полноценную подсветку синтаксиса, автодополнение и цветовую схему для программ ЧПУ в формате **BSNC / NC310**.
## ✨ Возможности
- **Подсветка 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.
## 🚀 Использование
- Откройте файл программы ЧПУ (с расширением или без).
- Подсветка и цвета применяются автоматически.
- Недопустимые Gкоды будут выделены красным фоном.
# 🛠 BSNC Syntax & Snippets
Расширение для **Visual Studio Code**, добавляющее:
- Подсветку синтаксиса для управляющих программ BSNC / NC310
- Автодополнение с готовыми сниппетами для G/Mкодов, циклов, переходов, подпрограмм, резьбы и перемещений
- Встроенную цветовую схему для токенов (интерфейс VS Code не меняется)
---
## 📦 Установка
1. Склонируйте репозиторий или скачайте `.vsix` файл.
2. В VS Code: `Ctrl+Shift+P`**Extensions: Install from VSIX** → выберите файл.
3. Расширение активируется автоматически для файлов с кодом 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 — используйте, модифицируйте и делитесь.
## ⚙️ Кастомизация
Если хотите изменить цвета:
1. Откройте `settings.json`.
2. Добавьте свои правила в `editor.tokenColorCustomizations.textMateRules` — они перекроют встроенные.
## 📄 Лицензия
MIT — используйте, модифицируйте и делитесь.