Usando o ChatGPT para Scripting no Altium

Ari Mahpour
|  Criada: Julho 21, 2023  |  Atualizada: Julho 6, 2024
Chat GPT para Scripting no Altium

 

Já faz alguns meses que as pessoas estão se familiarizando com a IA Generativa e, mais famosamente, com o ChatGPT. No meu último artigo, Usando ChatGPT para Testes Automatizados, eu apresentei o serviço ChatGPT, mostrei como se familiarizar com ele e usá-lo para gerar código para executar testes no seu hardware. Neste artigo, vamos ver como utilizar melhor o ChatGPT para escrever código DelphiScript para executar funções automatizadas dentro do próprio Altium usando Scripting no Altium.

Introdução

Antes de mergulharmos na implementação, é importante entender com o que estamos trabalhando aqui. O Scripting no Altium é melhor suportado usando DelphiScript (em detrimento de outras linguagens). Embora uma rápida pesquisa online gere resultados como, “É 2022—Não Está na Hora de Você Começar a Programar em Delphi?” e títulos chamativos como, “A linguagem Pascal usada no Delphi é uma das linguagens de programação mais populares e universais”, eu nunca vi Delphi sendo usado fora do Altium Designer. Isso não quer dizer que seja uma má linguagem - apenas não é tão comumente usada quanto Python, C++, etc. Há muito o que aprender com uma nova linguagem (especialmente se você não é um programador nativo), então a Altium reuniu muitos recursos e até ferramentas para programar em DelphiScript aqui. Se você está procurando se aprofundar na linguagem, os recursos lá podem ser úteis.

Salvando Seu Projeto

Ao começar com o Scripting no Altium, você rapidamente acumulará um grande repositório de scripts que talvez queira salvar e/ou compartilhar. Para criar um novo projeto de Scripting no Altium Designer, navegue até Arquivo > Novo > Script > Projeto de Script. Clique com o botão direito no seu projeto recém-criado e navegue até Adicionar Novo ao Projeto > Unidade de Script. Isso criará um novo arquivo .pas que será o seu script:

Chat GPT

Figura 1: Adicionando um arquivo de script ao projeto existente

Queremos salvar isso no nosso espaço de trabalho do Altium 365. Primeiro, certifique-se de ter salvo o projeto localmente. Depois disso, clique com o botão direito do mouse no projeto novamente e navegue até Histórico & Controle de Versão > Adicionar Projeto ao Controle de Versão…

Chat GPT

Figura 2: Adicionando projeto ao Espaço de Trabalho do Altium 365

 

Siga as instruções posteriores para salvar o projeto no seu Espaço de Trabalho Altium 365. Para mais instruções sobre como escrever, executar e depurar código DelphiScript dentro do Altium Designer, consulte a documentação da Altium.

IA Generativa Completa

Agora que estamos todos configurados, estamos prontos para mergulhar. O ChatGPT tem o "potencial" para escrever completamente um script DelphiScript do início ao fim. Eu uso "potencial" em vez de "capacidade" aqui porque nem sempre acerta. Vamos pegar um exemplo simples onde pedimos ao ChatGPT para gerar um script em DelphiScript para listar todas as redes no meu projeto. Eu comecei com um prompt que era, para ser justo, muito vago:

ChatGPT

Figura 3: Resposta inicial do ChatGPT

Isso automaticamente entendeu que eu queria listar todas as redes de um PcbDoc. Na verdade, eu queria isso do esquemático, então eu corrigi:

ChatGPT

Figura 4: Uma das muitas tentativas do ChatGPT de escrever o script correto

 

Não mostrei todo o código que ele gerou para mim, mas o que aconteceu depois foi que eu executei o código várias vezes apenas para o Altium Designer falhar em erros como “Identificador Não Declarado: eNet,” ou “Esperado: in For Pin in Component. Pins Do.” Tudo o que fiz foi responder ao ChatGPT com esses erros várias vezes, e na quinta tentativa, ele gerou o código que eu estava procurando.

O que está claro é que ele não é incrível em gerar DelphiScript do zero, mas é capaz de fazê-lo. Lembre-se disso antes de jogar seu teclado na parede de frustração.

Ajudante de IA

O ChatGPT também pode estar disponível como mais um parceiro ou programador auxiliar. Você pode usar o ChatGPT para analisar seu código, encontrar bugs ou ajudá-lo a ajustar funções específicas. Podemos pegar um exemplo de Scripting da Altium existente e fazer o ChatGPT ajustá-lo às nossas necessidades.

Existem recursos lá fora (especialmente hospedados no GitHub) que fornecem exemplos de Scripting da Altium para você. Vou usar os oficialmente fornecidos pela Altium. Eles podem ser encontrados aqui.

Estou começando com o exemplo PlaceAPort localizado em \DelphiScript Scripts\SCH\Sch_Scripts.PrjScr. Eu dei ao ChatGPT uma tarefa muito trivial:

ChatGPT

O ChatGPT me deu o código que seguia exatamente este pedido. Para ser honesto, isso é bastante simples se você se sente meio confortável com programação. Vamos torná-lo um pouco mais difícil, o que requer conhecimento contextual do Scripting da Altium.

Aqui está meu prompt atualizado para o ChatGPT:

Usando ChatGPT para Scripting no Altium

 

Falha na primeira tentativa com um Identificador Não Declarado:

ChatGPT

Figura 5: Erro do depurador do Altium Designer

Eu informo isso e, claro, ele pede desculpas. Falha novamente com um erro de “Identificador não declarado: Nome”, mas, na terceira vez, consigo minha etiqueta de rede exatamente onde deveria estar:

ChatGPT

Figura 6: Nova etiqueta de rede e porta geradas por scripts modificados

É óbvio que, com um aumento na complexidade, menor é a chance de o ChatGPT acertar seu script de primeira. Descobri que, com persistência, ele eventualmente consegue acertar, especialmente se você puder ajudá-lo um pouco (assumindo que você entenda o código que está sendo gerado).

Conclusão

Neste artigo, começamos com uma introdução ao Scripting no Altium, como criar um projeto e salvá-lo no seu espaço de trabalho do Altium 365. Mergulhamos em exemplos com o ChatGPT, onde ele gerou scripts completamente do zero e também modificou scripts que fornecemos. Demonstramos suas capacidades e como nem sempre acerta. Embora não seja perfeito, certamente pode atuar como um guia ao longo de sua jornada de Scripting no Altium. Mais importante, é certamente melhor tê-lo do que não tê-lo.

Sobre o autor

Sobre o autor

Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

Recursos relacionados

Documentação técnica relacionada

Retornar a página inicial
Thank you, you are now subscribed to updates.