Разработка постпроцессоров
  • Разработка постпроцессоров
v20.0.1
Search Results for

    Show / Hide Table of Contents

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

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

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

    Если эту страницу читает ассистент, чтобы настроить инструменты, — вот поле, на котором он находится.

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

    Постпроцессоры бывают двух видов, и они не смешиваются:

    • SPPX — набор обработчиков, по одному на команду CLData, на встроенном Паскале-подобном языке, исполняется InP;
    • .NET — проект на C# с SDK постпроцессирования, исполняется InpCore.exe.

    Оба читают один и тот же CLData. Именно поэтому чтение фактических данных проекта всегда идёт до правки кода.

    Для чего настраиваются инструменты: читать входные данные через сервер CLData, читать и изменять постпроцессор через сервер InP или через проект на C#, компилировать его, запускать на реальном тестовом проекте и сравнивать сформированную УП с заведомо правильной. Расширения VS Code — окно человека во всё это: они показывают найденные данные, изменённый код и полученную программу. Правильность результата определяет человек, с которым вы работаете; вы готовите основания, по которым он судит.

    Поэтому настройка состоит из четырёх частей, в таком порядке: расширения, папка, которая нужна каждому из них, MCP-серверы и знания — эта документация и skills. После этого приведите в порядок само рабочее пространство: см. организацию рабочего пространства и skill prepare-workspace.

    Сообщая о проблеме, зафиксируйте версии: CAM-системы, набора расширений, CAM Agent, MCP-серверов и AI-клиента. Большая часть сообщений «вчера работало» объясняется различием версий.

    Установка расширений

    Требуется Visual Studio Code 1.85 или новее. В распакованном архиве install.cmd устанавливает все лежащие рядом .vsix и заменяет прежние версии; ему нужна команда code в PATH, которую установщик VS Code добавляет по умолчанию. Без сценария установите каждый файл командой code --install-extension <файл>.vsix или через Extensions → Install from VSIX… в VS Code. Затем перезагрузите окно: F1 (или Ctrl+Shift+P) открывает палитру команд, в ней выполняется Developer: Reload Window. Всё, что на этой странице выделено жирным и содержит двоеточие, — команда VS Code и запускается так же.

    В наборе четыре расширения: SPPX Postprocessor Tools, CLData Inspector, DotNet Posts и модуль обновления.

    Папка установки CAM для расширений

    Каждому расширению нужна папка, в которую установлена CAM-система: там лежат программы, которыми оно управляет. Это первая настройка на странице параметров каждого расширения:

    Настройка Для чего Программа
    sppx.installationFolder SPPX Tools InP.exe
    cldata.installationFolder CLData Inspector InpCoreMCP.exe
    dotnetPosts.installationFolder DotNet Posts InpCore.exe

    Принимается как папка продукта, так и её подпапка Bin64, а также путь, вставленный вместе с кавычками. Вместо ввода пути выполните команду расширения — например DotNet Posts: Select Installation Folder… — и выберите папку в диалоге; на странице параметров тот же выбор доступен ссылкой. SPPX Tools и CLData Inspector берут значение друг у друга, пока их собственная настройка пуста, поэтому при обычной установке путь задаётся один раз.

    Подключение MCP-серверов

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

    CLData MCP — InpCoreMCP.exe, в папке Bin64 установленной CAM-системы. Работает автономно: открывает проект (*.stcp, *.stc) или отдельный файл *.inpcld, запущенная CAM-система не нужна, данные он не изменяет.

    InP MCP — inp-mcp-server.exe, поставляется вместе с CAM Agent; при установке по умолчанию это %LOCALAPPDATA%\CamAgent3\bin\inp-mcp-server.exe. Он управляет средой разработки постпроцессоров и может либо запустить экземпляр сам, в оконном или безоконном режиме, либо подключиться к тому, который вы открыли из CAM-системы.

    CAM MCP — cam-mcp-server.exe, рядом с предыдущим. Необязательный и не относящийся к постпроцессорам: он управляет запущенной CAM-системой. Подключайте его, когда нужные ответы лежат в исходном проекте, а не в CLData: станок и его схема, параметры операции, инструменты и их свойства, системы координат и установка заготовки. Он же умеет готовить то, что вы постпроцессируете: пересчитать траектории, выгрузить CLData активного проекта, создать и открыть тестовый проект. Полезен, когда тестовый случай нужно построить или поправить, а не просто прочитать.

    {
      "mcpServers": {
        "inpcld": {
          "command": "C:\\Program Files\\<папка установки CAM>\\Bin64\\InpCoreMCP.exe",
          "args": []
        },
        "inp": {
          "command": "C:\\Users\\<пользователь>\\AppData\\Local\\CamAgent3\\bin\\inp-mcp-server.exe",
          "args": []
        },
        "cam": {
          "command": "C:\\Users\\<пользователь>\\AppData\\Local\\CamAgent3\\bin\\cam-mcp-server.exe",
          "args": []
        },
        "knowledge": {
          "command": "C:\\Users\\<пользователь>\\AppData\\Local\\CamAgent3\\bin\\rag-mcp-server.exe",
          "args": []
        }
      }
    }
    

    Работа с постпроцессорами держится на первых двух; cam и knowledge — полезные дополнения, ненужное не включайте.

    Пути указывайте абсолютные и помните, что в JSON обратные слэши удваиваются. Куда положить конфигурацию, зависит от клиента:

    Клиент Куда попадает конфигурация
    Kilo Code kilo.jsonc в корне проекта или .kilo/kilo.jsonc; глобально ~/.config/kilo/kilo.jsonc. Файл пишет сам интерфейс: значок настроек → Agent Behaviour → MCP Servers
    Roo Code .roo/mcp.json в проекте или глобальный mcp_settings.json — MCP Servers → Edit Project MCP / Edit Global MCP
    Cline cline_mcp_settings.json — MCP Servers → Configure
    Claude Code .mcp.json в корне проекта или claude mcp add
    Copilot Chat в VS Code .vscode/mcp.json, секция servers
    Codex CLI ~/.codex/config.toml, секция [mcp_servers.inpcld] с command = "…"

    Там, где клиент поддерживает оба уровня, файл проекта имеет приоритет над глобальным. После изменения файла клиент нужно перезапустить. В таком файле оказываются локальные абсолютные пути, поэтому не коммитьте его в общий репозиторий.

    Это обычные программы на том же компьютере: клиент запускает такую программу и разговаривает с ней напрямую через её стандартный ввод и вывод, поэтому ни порт, ни служба, ни отдельная учётная запись никому из них не нужны — слово «сервер» здесь ничего не говорит о сети. Поэтому одна конфигурация подходит любому клиенту, а если сервер не отвечает, дело в пути или в правах. Исключение одно — сервер знаний: поиск по документации уходит в онлайн-сервис, а всё, что он закэшировал, продолжает работать и без него.

    Проверка подключения

    Возьмите непроизводственный проект и по одному небольшому запросу на чтение к каждому серверу: список файлов проекта CLData и пинг InP со структурой открытого постпроцессора. Сверьте ответы с тем проектом, который назвали. Никогда не включайте в проверку связи запись, правку исходников, передачу УП или подключение к станку.

    Документация и skills для ассистента

    Кроме инструментов ассистенту нужен справочный материал.

    Источников два, и они отвечают на разные вопросы.

    • Сервер знаний — rag-mcp-server.exe, в папке CAM Agent рядом с остальными серверами. Добавляется в конфигурацию MCP тем же способом и больше ничего не требует. Он держит снимок публичной документации — по продукту в целом и по постпроцессированию в частности — и ищет по нему по ключевым словам и по смыслу, читает страницу целиком, перечисляет и ищет публикуемые skills. Он же умеет проиндексировать проект CAM, чтобы искать по его операциям, инструментам и станку. Именно по нему отвечает CAM Agent, и тот же сервер работает с любым MCP-клиентом. Будучи снимком, он статичен по своей природе: он говорит, что умеет продукт, а не что решила ваша команда. Он держит локальный кэш, поэтому попросите ассистента однажды его обновить — после этого поиск по skills работает и без сети.

      Публикуемый набор может пополняться и с вашей стороны: написанный вами skill можно отправить на рассмотрение, и после принятия он войдёт в него для всех. Отправка выполняется из чата CAM Agent и только для того материала, который вы готовы опубликовать.

    • Документация рабочего пространства — ваша собственная, и она пополняется. Ваши проекты, приёмы, которые работают на ваших станках, соглашения, принятые в вашей команде, разобранные вами случаи. Это та часть, которую ассистенту больше взять негде, и именно она делает его ответы вашими, а не общими. Как её организовать — отдельная тема: организация рабочего пространства.

      Актуальное руководство открывается через центр документации СПРУТКАМ. Передайте ассистенту ссылку на нужную статью или используйте сервер знаний. Если нужна локальная копия для работы без сети, сохраните материалы с указанием версии и даты.

    Skills, публикуемые с этой документацией, лежат в папке skills этого раздела — каждый отдельной папкой с файлом SKILL.md внутри. Берите набор целиком: он пополняется вместе с инструментами, а ассистент использует тот skill, который подходит текущей задаче. В Kilo Code скопируйте папки в .kilo/skills/ внутри проекта или в ~/.kilo/skills/ (%USERPROFILE%\.kilo\skills\ в Windows), чтобы они были во всех проектах; новая сессия их подхватит, а команда /reload — без перезапуска. В остальных клиентах способ зависит от клиента: папка skills воркспейса или пользователя, запись в конфигурации агента или добавление вручную. Если в клиенте механизма skills нет, вставьте нужный SKILL.md в чат или сошлитесь на него из файла инструкций клиента (CLAUDE.md, AGENTS.md, .clinerules и подобных). CAM Agent ведёт собственный набор и хранит ваши рядом с ним.

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

    Обновления по требованию

    Когда новая версия доступна, панели предлагают действие обновления. Та же проверка запускается из палитры: Postprocessor Tools: Check for Updates, затем Postprocessor Tools: Install Available Updates, затем Developer: Reload Window. Обновления настраивает сам набор, поэтому расширениям, установленным вручную из отдельных .vsix, они никогда не предлагаются.

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

    Каждое расширение указывает на одну папку установки, и ассистент запускает то, что в ней лежит. Если рядом стоят выпущенная и бета-версия, определитесь, против какой из них разрабатывается постпроцессор, и задайте её во всех трёх настройках. Переключаясь, переключайте все — смешанная конфигурация, в которой CLData читает одна версия, а постпроцессор запускает другая, даёт результаты, которые невозможно воспроизвести.

    Есть один путь, которым эти настройки не владеют: переменная окружения InpCoreDir. Её записывает CLData Viewer при запуске, поэтому в ней оказывается та установка, чей просмотрщик запускался последним. Конфигурация отладки из шаблона .NET написана через эту переменную, но DotNet Posts подменяет папку своей настройкой в момент запуска отладки и один раз предупреждает при расхождении — так что отладка идёт по той же установке, что и панели. Переменная используется только тогда, когда настройка пуста.

    Её изменение не мгновенно, и это стоит знать, когда вы всё же на неё опираетесь: уже запущенные программы держат старое значение, и на практике, чтобы новое дошло до всех, нужен выход из сеанса Windows и повторный вход.

    Фиксация документации

    Для работы, которая должна быть воспроизводимой, держите копию документации на известной ревизии, а не обновляйте её постоянно, и записывайте эту ревизию вместе с версией постпроцессора. Сервис поиска всегда отвечает по текущему индексу: это удобно для исследования и бесполезно, когда нужно объяснить, почему ответ изменился.

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

    • Своя конфигурация запуска в панели Generate NC, чтобы ваши настройки остались как были.
    • Своя папка для сформированных УП, вне дерева исходников.
    • Ветвь или копия постпроцессора, никогда не производственный файл.
    • Уменьшенный тестовый проект вместо полного проекта заказчика. Меньше данных — читаемое сравнение и более быстрый цикл.
    • Никаких паролей, токенов, архивов заказчиков и посторонних репозиториев в воркспейсе и в файлах инструкций.

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

    Безоконный прогон подходит для воспроизводимой проверки: фиксированный входной проект, фиксированная ревизия постпроцессора, сохранённые логи и сохранённая УП. Полезной её делают два правила. Запускайте её в отдельной рабочей папке, которую не жаль потерять, чтобы неудачный прогон не оставил после себя полуизменённый постпроцессор. И разбирайте различия и вывод УП вне автоматики: автоматический сценарий может сообщить, что вывод изменился, но никогда — что изменение верно.

    Не подключайте автоматическую цепочку к системе ЧПУ и не давайте ей права на запись в производственные постпроцессоры.

    Правила, которые стоит записать в файл инструкций

    Требования, действующие всегда, размещайте там, где ассистент читает всегда: в файле инструкций воркспейса или в skills. На практике оправдывают себя такие:

    • читать фактические данные проекта до предложения изменений и приводить использованные значения;
    • читать текущий код элемента перед его правкой;
    • скомпилировать, затем запустить, затем сравнить с исходным результатом — до любого доклада о готовности;
    • держать изменение минимальным и объяснять, что оно не покрывает;
    • никогда не отправлять программу на станок и не менять настройки станка.
    In this article