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

    Show / Hide Table of Contents

    Устранение проблем

    Ассистент не видит навыки

    Спросите, какие навыки у него сейчас есть. Если шести навыков для интерпретаторов среди них нет, проверьте, что папки навыков лежат в той папке, которую действительно читает ваш клиент, что в каждой есть файл SKILL.md и что клиент их подхватил: Claude Code видит новые навыки сразу, а если папки навыков до копирования не было — после команды /reload-skills; Kilo Code — в новой сессии или после команды /reload; другие клиенты — по своей документации, часто только после перезапуска. Где какой клиент ищет навыки — в расширенной настройке.

    Ассистент отвечает по памяти вместо программ

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

    Ассистент докладывает об успехе, ничего не запустив

    Сборка — это не результат. Спросите, какие программы прогнаны, где журнал этого прогона и чем результат отличается от предыдущего. Если этого нет, состояние — Не проверено, см. Проверка и подтверждение результата.

    Интерпретатор не загружается

    Сначала прочитайте, какой Файл интерпретатора указан на вкладке Стратегия параметров операции, и журнал CAM системы. Если интерпретатор не загружен, каждое слово программы будет ошибкой.

    Любую неудачу загрузки интерпретатора на C# CAM система описывает одинаково — сообщением «Внешняя библиотека не поддерживает интерфейс NCT:» с путём к библиотеке; то же сообщение выдаётся для нативной библиотеки без нужных экспортов. Настоящая причина в сообщение не попадает. Чаще всего это:

    • рядом с файлом *.snci нет библиотеки, названной в нём, или нет её зависимостей;
    • библиотека собрана для другой версии .NET, чем нужна этой версии продукта;
    • при создании объекта интерпретатора возникло исключение — обычно при создании регистров.

    Попросите ассистента проверить файлы и создать объект интерпретатора в маленькой консольной программе с тем же пакетом SDK — так видно настоящее сообщение об ошибке.

    Для нативного интерпретатора проверьте разрядность библиотеки, экспорт NCT_GetInterface и NCT_FreeMemory и совпадение GetIdentifier с LibraryID — см. Рабочий цикл нативного интерпретатора.

    Два интерпретатора путаются

    CAM система различает интерпретаторы по идентификаторам в файле *.snci. Скопированный интерпретатор с теми же LibraryID и ID неотличим от оригинала: моделирует то один, то другой. Дайте копии новые идентификаторы.

    Точка останова не срабатывает

    Проверьте по порядку: рядом с библиотекой есть файл *.pdb (сборка без отладочной информации делает любую точку останова «мёртвой»); операция использует именно ваш интерпретатор; сборка перед запуском прошла успешно — откройте панель терминала и прочитайте её результат; в CAM систему передан файл *.snci из папки той версии, которую вы запустили.

    Настройки из InterpreterSettings.ini не действуют

    В шаблонах есть известные ошибки чтения InterpreterSettings.ini: файл может не читаться совсем, а в журнале остаётся только информационная строка, начинающаяся с Error reading settings file. Отфильтрованный по ошибкам журнал её не покажет. Попросите ассистента проверить шаблон, из которого создан интерпретатор, — навык develop-dotnet-interpreter перечисляет эти ошибки и их исправления.

    Ось моделируется не там или не моделируется вовсе

    Помощник из пакета SDK, через который шаблоны .NET находят оси станка, предупреждает о неизвестном имени оси один раз, а дальше молча пропускает её значения. Проверьте, что имя оси в программе совпадает с адресом оси в схеме станка, и что сопоставление имён работает для всех написаний из перечня слов: B90, B=90, B1=90.

    Второй канал двигает оси первого или не моделируется

    Интерпретатор должен двигать те оси, которые ему передаёт CAM система для канала его программы: для второго канала — например, X2, Y2, Z2. Если второй канал двигает оси первого или его траектория сжимается в точку, сравните эти оси с осями, которые интерпретатор передаёт в команды движения. Расхождение — ошибка интерпретатора или его файла *.snci, а не CAM системы.

    Синхронизацию каналов проверяйте в CAM системе: в зависимости от версии и лицензии NC Тюнер может моделировать каналы не одновременно, а по очереди, и тогда точки ожидания ничего не задерживают.

    Пустая траектория без ошибки

    Частые причины:

    • в программе нет заголовка, с которым её выводит постпроцессор: проверочная программа, собранная из одних проверяемых кадров, может не дать ни одного движения — собирайте её из заголовка настоящей программы той же операции;
    • интерпретатор-родитель предназначен только для импорта траектории (в списке интерпретаторов у таких указано «Только для импорта траектории»);
    • имя оси в программе не совпадает с адресом оси в схеме станка (см. раздел выше);
    • интерпретатор с защитой не получил своих данных защиты — например, запущен из обычной папки, а не из контейнера — и написан так, что тогда молча ничего не моделирует. См. Интерпретаторы с защитой.

    Результат не совпадает с тем, что даёт другая версия продукта

    У каждой версии CAM системы и NC Тюнера своя версия .NET и своя версия пакета SDK (см. Версии продукта). Проверьте, в какой версии продукта шёл прогон и для какой собрана библиотека, — см. Несколько версий продукта на одном компьютере.

    Документация, которую читает ассистент, устарела

    Локальная копия — это снимок: скачайте архив заново, когда выходит новая версия, и записывайте, на какой версии основано решение. Подробности, зависящие от версии, — версию пакета SDK, имена интерфейсов — сверяйте с установленным продуктом, а не с копией.

    In this article