使用ChatGPT进行Altium脚本编写

Ari Mahpour
|  已创建:July 21, 2023  |  已更新:August 9, 2023
Chat GPT 用于 Altium 脚本编写

 

到目前为止,人们已经有几个月的时间来熟悉生成式AI,尤其是ChatGPT了。在我上一篇文章使用ChatGPT进行自动化测试中,我介绍了ChatGPT服务,展示了如何熟悉它,并使用它生成代码来对您的硬件进行测试。在这篇文章中,我们将探讨如何最好地利用ChatGPT编写DelphiScript代码,以在Altium自身中运行自动化功能,使用Altium脚本

入门

在我们深入实施之前,了解我们在这里处理的内容很重要。Altium脚本最好使用DelphiScript(而不是其他语言)支持。虽然在线快速搜索的结果如“现在是2022年——你不是该开始用Delphi编程了吗?”和如“在Delphi中使用的Pascal语言是最流行和最通用的编程语言之一”这样的吸引人标题,我从未见过Delphi在Altium Designer之外的使用。这并不是说它是一种糟糕的语言——它只是不像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。我在这里使用“潜力”而不是“能力”,因为它并不总是能做对。让我们以一个简单的例子为例,我们要求ChatGPT生成一个DelphiScript脚本,列出我的项目中的所有网络。我开始的提示是非常模糊的:

ChatGPT

图3:ChatGPT的初始回应

它自动理解我想从PcbDoc列出所有网络。实际上,我想要的是从原理图中获取,所以我纠正了它:

ChatGPT

图4:ChatGPT尝试编写正确脚本的众多尝试之一

 

我没有展示它为我生成的所有代码,但之后发生的是我多次运行代码,只是让Altium Designer因为“未声明的标识符:eNet”或“预期:在For Pin in Component.Pins Do中”等错误而失败。我只是多次向ChatGPT报告这些错误,第五次尝试时,它生成了我正在寻找的代码。

很明显,它在从头开始生成DelphiScript方面并不擅长,但它确实有能力这样做。在你因挫败感而想要摔键盘之前,请记住这一点。

AI助手

ChatGPT也可以作为更多的辅助或同伴程序员出现。您可以使用ChatGPT分析您的代码,找出错误,或帮助您调整特定功能。我们可以采用现有的Altium脚本示例,并让ChatGPT对其进行调整以满足我们的需求。

有一些资源(尤其是托管在GitHub上的)为您提供Altium脚本示例。我将使用Altium官方提供的示例。它们可以在这里找到。

我从\DelphiScript Scripts\SCH\Sch_Scripts.PrjScr下的PlaceAPort示例开始。我给了ChatGPT一个非常简单的任务:

ChatGPT

ChatGPT给了我完全符合这个请求的代码。老实说,如果你对编程有一定的了解,这是相当简单的。让我们让它变得更难一些,需要对Altium脚本有上下文知识。

这是我更新后给ChatGPT的提示:

使用ChatGPT进行Altium脚本编写

 

首次尝试时因为一个未声明的标识符而失败:

ChatGPT

图5:来自Altium Designer的调试器错误

我告诉它这个问题,它当然道了歉。它再次因为“未声明的标识符:Name”错误而失败,但到了第三次,我终于得到了我的网络标签,正好在它应该在的地方:

ChatGPT

图6:通过修改脚本生成的新网络标签和端口

很明显,随着复杂性的增加,ChatGPT在第一次就能正确生成你的脚本的机会就越小。我发现,通过坚持不懈,尤其是如果你能稍微协助它一下(假设你理解它正在生成的代码),它最终能够做对。

结论

在这篇文章中,我们从介绍Altium脚本编写开始,讲解了如何创建一个项目,并将其保存到你的Altium 365工作区。我们深入探讨了与ChatGPT的例子,其中它完全从头开始生成脚本,也修改了我们提供的脚本。我们展示了它的能力以及它并不总是能够做对。虽然它不是完美的,但它确实可以在你的Altium脚本编写旅程中充当指导。最重要的是,拥有它总比完全没有它要好。

关于作者

关于作者

Ari 是一位在设计、制造、测试以及集成电气、机械和软件系统方面拥有丰富经验的工程师。他热衷于将设计、验证和测试工程师凝聚成一个高效团队,共同工作。

相关资源

相关的技术文档

返回主页
Thank you, you are now subscribed to updates.