Altium 스크립팅을 위한 ChatGPT 사용하기

Ari Mahpour
|  작성 날짜: 칠월 21, 2023  |  업데이트 날짜: 칠월 6, 2024
Altium 스크립팅을 위한 Chat GPT

 

이제 몇 달 동안 사람들이 Generative AI와 가장 유명한 ChatGPT에 익숙해졌습니다. 제가 마지막으로 작성한 글인 자동화 테스트를 위한 ChatGPT 사용에서 ChatGPT 서비스를 소개하고, 이에 익숙해지는 방법을 보여주며, 하드웨어에서 테스트를 실행하기 위한 코드를 생성하는 방법을 사용했습니다. 이번 글에서는 Altium 내에서 자동화된 기능을 실행하기 위해 DelphiScript 코드를 작성하는 데 ChatGPT를 최적으로 활용하는 방법을 살펴볼 것입니다. 이를 위해 Altium 스크립팅을 사용합니다.

시작하기

구현에 앞서 우리가 무엇을 다루고 있는지 이해하는 것이 중요합니다. Altium 스크립팅은 DelphiScript(다른 언어보다)를 사용하여 가장 잘 지원됩니다. 온라인에서 간단한 검색으로 "2022년입니다—Delphi로 코딩을 시작할 때가 되지 않았나요?"와 같은 문구와 "Delphi에서 사용되는 Pascal 언어는 가장 인기 있고 보편적인 프로그래밍 언어 중 하나입니다"와 같은 매력적인 헤더를 찾을 수 있지만, Altium Designer 외부에서 Delphi를 사용한 적은 본 적이 없습니다. 그렇다고 해서 나쁜 언어라는 것은 아니지만 Python, C++ 등만큼 흔히 사용되지는 않습니다. 새로운 언어를 배우는 것은 많은 학습이 필요합니다(특히 프로그래밍이 익숙하지 않은 경우), 그래서 Altium은 DelphiScript로 코딩하는 데 주변 도구와 많은 자료를 여기에 마련해 두었습니다. 언어에 대해 깊이 파고들고 싶다면, 그곳의 자료가 도움이 될 수 있습니다.

프로젝트 저장하기

Altium 스크립팅을 시작하면서, 저장하고/또는 공유하고 싶은 스크립트의 큰 저장소를 매우 빠르게 구축하게 될 것입니다. Altium Designer에서 새 스크립팅 프로젝트를 생성하려면 파일 > 새로 만들기 > 스크립트 > 스크립트 프로젝트로 이동합니다. 새로 생성된 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트에 새로 추가 > 스크립트 단위로 이동합니다. 이렇게 하면 스크립트가 될 새 .pas 파일이 생성됩니다:

Chat GPT

그림 1: 기존 프로젝트에 스크립트 파일 추가

이를 Altium 365 작업 공간에 저장하고자 합니다. 먼저 프로젝트를 로컬에 저장했는지 확인하세요. 그 후에 다시 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 이력 및 버전 관리 > 프로젝트를 버전 관리에 추가…로 이동합니다.

Chat GPT

그림 2: 프로젝트를 Altium 365 작업 공간에 추가

 

Altium 365 작업 공간에 프로젝트를 저장하려면 이후에 나오는 안내를 따르십시오. Altium Designer 내에서 DelphiScript 코드를 작성, 실행 및 디버그하는 방법에 대한 추가 지침은 Altium 문서를 참조하십시오.

전체 생성 AI

이제 모든 준비가 되었으니, 시작해보겠습니다. ChatGPT는 DelphiScript를 처음부터 끝까지 완전히 작성할 "잠재력"을 가지고 있습니다. 여기서 "잠재력"이라는 단어를 "능력" 대신 사용하는 이유는 항상 올바르게 처리하는 것은 아니기 때문입니다. 프로젝트의 모든 네트를 나열하는 DelphiScript를 생성하도록 ChatGPT에 요청하는 간단한 예를 들어 보겠습니다. 시작은 매우 모호한 프롬프트였습니다:

ChatGPT

그림 3: 초기 ChatGPT 응답

이것은 자동으로 PcbDoc에서 모든 네트를 나열하고 싶다는 것을 이해했습니다. 실제로는 스키마틱에서 원했기 때문에 이를 수정했습니다:

ChatGPT

그림 4: 올바른 스크립트를 작성하기 위한 ChatGPT의 여러 시도 중 하나

 

ChatGPT가 제게 생성해준 모든 코드를 보여주지는 않았지만, 그 후에 일어난 일은 "Undeclared Identifier: eNet," 또는 "Expected: in For Pin in Component. Pins Do."와 같은 오류로 Altium Designer가 실패하면서 여러 번 코드를 실행한 것뿐이었습니다. 저는 이러한 오류들을 ChatGPT에게 여러 번 알렸고, 다섯 번째 시도에서 제가 찾던 코드를 생성했습니다.

분명한 것은 처음부터 DelphiScript를 생성하는 데 있어 탁월하지는 않지만, 그럼에도 불구하고 할 수 있다는 것입니다. 키보드를 벽에 던지기 전에 이 점을 기억하세요.

AI 도우미

ChatGPT는 또한 코드를 분석하고, 버그를 찾거나, 특정 함수를 조정하는 데 도움을 줄 수 있는 조력자나 동료 프로그래머로서 사용될 수 있습니다. 기존의 Altium 스크립팅 예제를 가지고 ChatGPT에게 우리의 필요에 맞게 조정하도록 할 수 있습니다.

여러분을 위한 리소스가 있습니다(특히 GitHub에 호스팅된 것들) Altium 스크립팅 예제를 제공합니다. 저는 Altium에서 공식적으로 제공하는 것들을 사용할 것입니다. 여기서 찾을 수 있습니다 여기.

\DelphiScript Scripts\SCH\Sch_Scripts.PrjScr 아래에 위치한 PlaceAPort 예제로 시작하겠습니다. 저는 ChatGPT에게 매우 단순한 작업을 주었습니다:

ChatGPT

ChatGPT는 정확히 이 요청에 따라 코드를 제공했습니다. 솔직히 프로그래밍에 어느 정도 익숙하다면 이것은 꽤 간단합니다. Altium 스크립팅의 맥락적 지식이 필요한 조금 더 어려운 작업으로 만들어 보겠습니다.

여기 ChatGPT에게 제공한 업데이트된 프롬프트가 있습니다:

Altium 스크립팅을 위한 ChatGPT 사용

 

첫 시도에서 선언되지 않은 식별자로 실패합니다:

ChatGPT

그림 5: Altium Designer에서의 디버거 오류

그 사실을 알리고, 당연히 사과를 받습니다. "선언되지 않은 식별자: 이름" 오류로 다시 실패하지만, 세 번째 시도에는 내 네트 라벨이 정확히 원하는 위치에 있습니다:

ChatGPT

그림 6: 수정된 스크립트로 생성된 새 네트 라벨과 포트

복잡성이 증가함에 따라 ChatGPT가 첫 시도에서 스크립트를 올바르게 가져올 확률이 낮아진다는 것은 명백합니다. 인내심을 가지고, 조금 도와줄 수 있다면(생성하는 코드를 이해한다고 가정할 때), 결국 올바르게 처리할 수 있음을 발견했습니다.

결론

이 글에서는 Altium 스크립팅에 대한 소개, 프로젝트 생성 방법, 그리고 Altium 365 작업 공간에 저장하는 방법으로 시작했습니다. ChatGPT와 함께 완전히 새로운 스크립트를 생성하고, 우리가 제공한 스크립트를 수정하는 예제를 살펴보았습니다. 그것의 능력을 보여주었고, 항상 올바르게 처리하지는 않는다는 것을 보여주었습니다. 완벽하지는 않지만, Altium 스크립팅 여정을 통해 안내자 역할을 할 수 있으며, 가지고 있는 것이 전혀 없는 것보다 확실히 낫습니다.

작성자 정보

작성자 정보

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.

관련 자료

관련 기술 문서

홈으로 돌아가기
Thank you, you are now subscribed to updates.