К настоящему времени люди уже несколько месяцев знакомятся с Generative AI и, наиболее известным, ChatGPT. В моей последней статье, Использование ChatGPT для автоматизированного тестирования, я представил сервис ChatGPT, показал, как с ним ознакомиться и использовать его для генерации кода для тестирования вашего оборудования. В этой статье мы рассмотрим, как наилучшим образом использовать ChatGPT для написания кода на DelphiScript для автоматизации функций в самом Altium с использованием Altium Scripting.
Прежде чем мы погрузимся в реализацию, важно понять, с чем мы работаем. Altium Scripting лучше всего поддерживается с использованием DelphiScript (по сравнению с другими языками). Хотя быстрый поиск в интернете дает результаты вроде "Это 2022 год — не пора ли вам начать программировать на Delphi?" и привлекательные заголовки, такие как "Язык Pascal, используемый в Delphi, является одним из самых популярных и универсальных языков программирования", я никогда не видел использования Delphi вне Altium Designer. Это не значит, что язык плохой - он просто не так широко используется, как Python, C++ и т.д. С новым языком многое предстоит изучить (особенно если вы не программист), поэтому Altium собрал множество ресурсов и даже инструментов для программирования на DelphiScript здесь. Если вы хотите глубже погрузиться в язык, эти ресурсы могут быть полезны.
Как только вы начнете работать с Altium Scripting, вы очень быстро создадите большой репозиторий скриптов, которые захотите сохранить и/или поделиться. Чтобы создать новый проект Scripting в Altium Designer, перейдите в Файл > Создать > Скрипт > Проект скрипта. Щелкните правой кнопкой мыши по только что созданному проекту и перейдите к Добавить новое в проект > Модуль скрипта. Это создаст новый файл .pas, который будет вашим скриптом:
Рисунок 1: Добавление файла скрипта в существующий проект
Мы захотим сохранить это в нашем рабочем пространстве Altium 365. Сначала убедитесь, что вы сохранили проект локально. После этого щелкните правой кнопкой мыши по проекту снова и перейдите к История & Контроль версий > Добавить проект в контроль версий…
Рисунок 2: Добавление проекта в рабочее пространство Altium 365
Следуйте подсказкам, чтобы сохранить проект в вашем рабочем пространстве Altium 365. Для получения дополнительных инструкций о том, как писать, запускать и отлаживать код на DelphiScript в Altium Designer, смотрите документацию Altium.
Теперь, когда мы все настроили, мы готовы погрузиться в работу. У ChatGPT есть "потенциал" полностью написать DelphiScript с начала и до конца. Я использую слово "потенциал" вместо "способность", потому что он не всегда все делает правильно. Давайте рассмотрим простой пример, когда мы просим ChatGPT сгенерировать скрипт на DelphiScript для перечисления всех сетей в моем проекте. Я начал с запроса, который, честно говоря, был очень расплывчатым:
Рисунок 3: Начальный ответ ChatGPT
Он автоматически понял, что я хочу перечислить все сети из PcbDoc. На самом деле мне это было нужно из схемы, поэтому я его исправил:
Рисунок 4: Одна из многих попыток ChatGPT написать правильный скрипт
Я не показал весь код, который он сгенерировал для меня, но после этого я запускал код несколько раз, только чтобы Altium Designer выдавал ошибки вроде "Необъявленный идентификатор: eNet" или "Ожидается: in For Pin in Component. Pins Do." Все, что я делал, - это несколько раз сообщал об этих ошибках ChatGPT, и на пятой попытке он сгенерировал код, который мне был нужен.
Что ясно, так это то, что он не идеален в генерации DelphiScript с нуля, но способен это делать. Помните об этом, прежде чем кидать клавиатуру об стену от разочарования.
ChatGPT также может быть использован как помощник или коллега-программист. Вы можете использовать ChatGPT для анализа вашего кода, поиска ошибок или помощи в настройке конкретных функций. Мы можем взять существующий пример скрипта Altium и попросить ChatGPT адаптировать его под наши нужды.
В интернете есть ресурсы (особенно размещенные на GitHub), которые предоставляют примеры скриптов Altium. Я собираюсь использовать те, которые официально предоставлены Altium. Их можно найти здесь.
Я начинаю с примера PlaceAPort, расположенного в \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr. Я дал ChatGPT очень простую задачу:
ChatGPT дал мне код, который точно соответствовал этому запросу. Честно говоря, это довольно просто, если вы в какой-то мере уверенно владеете программированием. Давайте усложним задачу, требующую контекстного знания скриптов Altium.
Вот мой обновленный запрос к ChatGPT:
С первой попытки возникает ошибка из-за Необъявленного Идентификатора:
Рисунок 5: Ошибка отладчика от Altium Designer
Я сообщаю об этом, и, конечно, получаю извинения. Следующая попытка снова завершается ошибкой "Необъявленный идентификатор: Name", но с третьей попытки я получаю метку сети точно там, где она должна быть:
Рисунок 6: Новая метка сети и порт, созданные модифицированными скриптами
Очевидно, что с увеличением сложности у ChatGPT меньше шансов с первой попытки правильно выполнить ваш скрипт. Я обнаружил, что с настойчивостью он в конечном итоге способен добиться правильного результата, особенно если вы немного поможете ему (предполагая, что вы понимаете генерируемый им код).
В этой статье мы начали с введения в скрипты Altium, как создать проект и сохранить его в вашем рабочем пространстве Altium 365. Мы рассмотрели примеры с ChatGPT, где он полностью генерировал скрипты с нуля, а также модифицировал скрипты, которые мы ему предоставили. Мы продемонстрировали его возможности и то, что он не всегда справляется с задачами. Хотя он и не идеален, он определенно может служить руководством на протяжении вашего пути использования скриптов в Altium. Что наиболее важно, лучше иметь его, чем вовсе обходиться без него.