Разработка интерпретаторов
  • Разработка интерпретаторов
v3.0.3
Search Results for

    Show / Hide Table of Contents

    Расширенная настройка

    Эта страница — полная процедура настройки и справка для проверки того, что было сделано. Передайте её ассистенту, как описано в настройке инструментов, выполняйте по ней вручную или читайте, когда команде нужен воспроизводимый результат.

    О чём идёт речь

    Этот раздел обращён к ассистенту, который читает страницу, чтобы настроить инструменты: вот предметная область, в которой он работает.

    Стойка ЧПУ выполняет управляющую программу (УП) — текст из кадров, каждый кадр состоит из слов: адресов с числами, G- и M-функций, вызовов циклов. CAM система умеет моделировать такую программу: показать траекторию инструмента и движения станка, которые она вызовет. Для этого ей нужен интерпретатор — библиотека, которая объясняет ядру CAM системы, что значит каждое слово на конкретной стойке. Каждой стойке и её диалекту нужен свой интерпретатор, и доработка интерпретатора — работа человека, которому помогает ассистент. Обычно это технолог, инженер поддержки или тестировщик, который знает станок гораздо лучше, чем программирование.

    Интерпретатор состоит из двух файлов: файла настроек *.snci и библиотеки *.dll. Библиотека бывает двух видов:

    • .NET — проект на C#, созданный из шаблона CAM системы, — путь по умолчанию;
    • нативная — библиотека на Delphi, C++ или другом компилируемом языке — только по прямой просьбе пользователя или для уже нативного интерпретатора.

    Для чего настраиваются инструменты: читать настоящие УП и руководство стойки, править и собирать интерпретатор, прогонять через него программы в CAM системе или NC Тюнере и сравнивать результат с предыдущим. Правильность моделирования определяет этот человек; ассистент готовит основания, по которым он судит.

    Настройка состоит из трёх частей, в таком порядке: навыки, средства сборки и отладки, рабочая папка. В сообщении о проблеме указывают версии CAM системы или NC Тюнера, .NET SDK, ИИ-клиента и навыков: большая часть сообщений «вчера работало» объясняется различием версий.

    Навыки в разных ИИ-клиентах

    Навыки публикуются с этой документацией: архив ветки скачивается по ссылке со страницы Разработка интерпретаторов с помощью ИИ, навыки лежат в нём в папке src/ai-assisted-development/skills/ внутри корневой папки архива public-docs. Навык — это папка с именем навыка и файлом SKILL.md внутри. Копируйте все шесть папок сразу: навыки ссылаются друг на друга по названиям.

    Клиент Куда скопировать
    Kilo Code .kilo/skills/ рабочей папки или %USERPROFILE%\.kilo\skills\, чтобы навыки были во всех проектах; новая сессия их подхватит, команда /reload — без перезапуска
    Claude Code .claude/skills/ рабочей папки или %USERPROFILE%\.claude\skills\, чтобы навыки были во всех проектах; новые навыки видны сразу, а если папки навыков до этого не было — после команды /reload-skills
    Другие клиенты Своя папка навыков рабочей папки или пользователя, запись в конфигурации агента или пункт настройки — по документации клиента

    Если в клиенте нет механизма навыков, вставьте содержимое SKILL.md нужных навыков в чат или сошлитесь на их файлы из файла инструкций клиента (AGENTS.md, CLAUDE.md и подобных).

    Каким бы способом вы их ни подключили, проверьте, что они загружены: спросите у ассистента, какие навыки он сейчас видит. Навыки установлены для пользователя — доступны при любой открытой папке; установлены для рабочей папки — только в ней.

    Навыки обновляются вместе с документацией. Заменяйте папки целиком, а не правьте их на месте: свои дополнения держите отдельными навыками рядом с ними (см. организацию рабочего пространства).

    Средства сборки и отладки

    Для интерпретатора на C# нужны:

    • .NET SDK той версии .NET, которую использует нужная версия продукта (см. Версии продукта). Проверьте командой dotnet --list-sdks.
    • Visual Studio Code с расширением C# от Microsoft: в нём отладчик, на который рассчитаны конфигурации запуска шаблонов. Расширение XML Language Support by Red Hat удобно для правки файлов *.snci, но не обязательно.
    • Путь к программе продукта для отладки. Шаблон запускает CAM систему или NC Тюнер из папки, записанной в переменных среды NCKernelDir (CAM система) и TunerDir (NC Тюнер). Окно Создать интерпретатор УП (дальше — создатель интерпретатора) записывает одну из них — переменную того продукта, из которого оно открыто, — когда в нём нажимают кнопку Задать путь к файлу СПРУТКАМ (в NC Тюнере на кнопке — его название) и выбирают исполняемый файл продукта; после этого нужно выйти из сеанса Windows и войти снова или хотя бы запустить Visual Studio Code заново из меню «Пуск». Если переменной нет, путь можно записать в launch.json — стандартную папку установки продукта, а не папку, которая есть только на вашем компьютере. Имя исполняемого файла CAM системы в launch.json подставляет создатель интерпретатора; в шаблоне, скопированном вручную, без создателя, остаётся ${env:CAMName}, которую ничто не задаёт, — впишите вместо неё имя файла. Подробно — Отладка интерпретатора в Visual Studio Code.
    • Журнал: в окне Системные настройки на странице Дополнительные, в группе Логирование, включены опции Вести журнал и Вести журнал взаимодействия с интерпретатором (вторая доступна, только когда включена первая); в NC Тюнере — так же. Без них в журнале нет ни сообщений ядра о прочитанных словах, ни строк, которые пишет интерпретатор. Подробно — см. Журнал взаимодействия с интерпретатором.

    Для нативного интерпретатора нужен его компилятор и пакеты с объявлениями интерфейсов SDK — см. Рабочий цикл нативного интерпретатора.

    Чего из перечисленного не хватает, нужно назвать, а не подставлять догадку; недостающее устанавливается только с разрешения пользователя.

    Файл инструкций рабочей папки

    Требования, действующие всегда, размещайте там, где ассистент читает всегда: в файле инструкций рабочей папки (AGENTS.md или файл, который читает ваш клиент) или в навыках. Что в нём держать, описано в организации рабочего пространства.

    Для интерпретатора на C# открытой папкой должна быть папка самого интерпретатора, а клиенты по-разному ищут файлы инструкций. Claude Code читает CLAUDE.md (а если его нет — AGENTS.md) и в открытой папке, и во всех папках выше неё, поэтому памятка рабочей папки, лежащей выше папки интерпретатора, видна ему и так. Kilo Code читает AGENTS.md только в открытой папке, поэтому:

    • в Kilo Code можно перечислить дополнительные файлы инструкций в глобальной настройке instructions файла kilo.jsonc (обычно %USERPROFILE%\.config\kilo\kilo.jsonc) — пропишите там полный путь к AGENTS.md рабочей папки, и он будет читаться в любом проекте;
    • если клиент так не умеет, положите в папку интерпретатора короткий AGENTS.md со ссылкой на общий файл и папку заметок.

    На практике оправдывают себя такие правила:

    • сначала прочитать настоящие программы и руководство стойки и называть, откуда взято каждое слово;
    • C# (.NET) по умолчанию, нативный интерпретатор — только по прямой просьбе;
    • вариации — в InterpreterSettings.ini, а не в код;
    • одно изменение за раз, затем сборка, прогон всех программ и сравнение с предыдущим результатом — до любого доклада о готовности;
    • не менять установленный продукт, его шаблоны и библиотеки;
    • не отправлять интерпретатор заказчику без разрешения.

    Несколько версий продукта на одном компьютере

    Интерпретатор работает в той версии продукта, для которой собран: у каждой версии свой .NET и своя версия пакета SDK (см. Версии продукта). Определитесь, для каких версий разрабатывается интерпретатор, и прогоняйте программы в каждой из них. Один проект может собираться для нескольких версий — по папке результата на каждую и по конфигурации запуска на каждую. Если версия не установлена на этом компьютере, проверку в ней нельзя считать сделанной: так и скажите.

    Переменные NCKernelDir и TunerDir указывают на одну установку. Если рядом стоят выпущенная и бета-версия, проверьте, на какую указывает переменная, прежде чем сравнивать результаты: прогон в другой версии завершается успешно и просто даёт другой результат.

    Отдельное рабочее место для ассистента

    • Копия или ветвь интерпретатора, а не файлы, которые уже у заказчика.
    • Своя папка для результатов прогонов, вне дерева исходников.
    • Прогон из копии результата сборки, чтобы новая сборка не подменила библиотеку посреди набора программ.
    • Сокращённые программы и проекты вместо полных архивов заказчика, где этого достаточно.
    • Никаких паролей, токенов, файлов лицензий, архивов заказчиков и посторонних репозиториев в рабочей папке и в файлах инструкций — подробнее в разделе Чего в ней быть не должно.

    Автоматические проверки

    Программа прогона, которая без щелчков моделирует все УП и сохраняет смоделированные команды и журнал, делает проверку воспроизводимой: фиксированные программы, фиксированный проект, фиксированная версия интерпретатора. Её делает ассистент по навыку verify-interpretation на открытом программном интерфейсе CAM системы; правила, без которых ей нельзя доверять, и случаи, когда прогон остаётся ручным, — в разделе Прогон программ. Автоматика может сообщить, что моделирование изменилось, но никогда — что изменение верно: различия разбирает человек.

    In this article