From eef9e8666275b3cffb30a7cdd0348a830c1085d3 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 21 Aug 2025 02:42:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D1=81=D0=BD=D0=B8=D0=BF=D0=BF=D0=B5=D1=82,=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B8?= =?UTF-8?q?=D0=BD=D0=B8-=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 147 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- snippets/bsnc.json | 4 +- 3 files changed, 146 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d423979..0f98fd2 100644 --- a/README.md +++ b/README.md @@ -78,12 +78,151 @@ - Откройте файл программы ЧПУ (с расширением или без). - Подсветка и цвета применяются автоматически. -- Сниппеты: - - `ucg` → `(UCG,2,X-33X33,Y-33Y33,Z-15Z0,1,-3)` - - `urt` → `(URT,0)` - - `rpt` → `(RPT,E0)` - Недопустимые G‑коды будут выделены красным фоном. +# 🛠 BSNC Syntax & Snippets + +Расширение для **Visual Studio Code**, добавляющее: +- Подсветку синтаксиса для управляющих программ BSNC / NC‑310 +- Автодополнение с готовыми сниппетами для 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 — используйте, модифицируйте и делитесь. + + ## ⚙️ Кастомизация Если хотите изменить цвета: diff --git a/package.json b/package.json index c10aa24..1e85579 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nc310-syntax", "displayName": "Balt-System PLC Syntax", "description": "Подсветка, цвета и сниппеты Baltsystem PLC", - "version": "1.0.1", + "version": "1.0.2", "publisher": "andrewkydev", "repository": { "type": "git", diff --git a/snippets/bsnc.json b/snippets/bsnc.json index dbfd2a8..b97e31d 100644 --- a/snippets/bsnc.json +++ b/snippets/bsnc.json @@ -314,12 +314,12 @@ }, "S — вращение шпинделя по часовой стрелке": { "prefix": "s0", - "body": ["S${1:LABEL},M3"], + "body": ["S${1:LABEL}M3"], "description": "Установка скорости шпинделя по часовой стрелке" }, "S1 — вращение шпинделя против часовой стрелки": { "prefix": "s1", - "body": ["S${1:LABEL},M4"], + "body": ["S${1:LABEL}M4"], "description": "Установка скорости шпинделя против часовой стрелки" }