使用 ChatGPT 进行 Altium 脚本编写

Ari Mahpour
|  已创建:July 21, 2023  |  已更新:September 16, 2026
At a Glance

在本文中,Ari Mahpour 将介绍如何以最佳方式利用 ChatGPT,为 Altium Scripting 的 DelphiScript 语言编写脚本。

Go Deeper with AI:
用于 Altium 脚本的 Chat GPT

 

到现在为止,大家已经有几个月的时间来熟悉生成式 AI,尤其是大名鼎鼎的 ChatGPT。在我上一篇文章 Using ChatGPT for Automated Testing 中,我介绍了 ChatGPT 服务,展示了如何快速上手,并利用它生成代码来对您的硬件执行测试。本文我们将探讨如何最好地利用 ChatGPT 编写 DelphiScript 代码,通过 Altium Scripting 在 Altium 内部运行自动化功能。

入门

在深入实现之前,先了解我们正在处理的内容非常重要。Altium Scripting 对 DelphiScript 的支持最好(相比其他语言)。虽然在网上快速搜索会看到诸如“现在都 2022 年了——你是不是该开始用 Delphi 编程了?”这样的结果,以及像“Delphi 所使用的 Pascal 语言是最流行、最通用的编程语言之一”这类吸引眼球的标题,但除了 Altium Designer 之外,我从未见过 Delphi 被用于其他场景。这并不是说它是一门糟糕的语言——只是它不像 Python、C++ 等那样常见。学习一门新语言有很多内容要掌握(尤其是如果您并非专业程序员),因此 Altium 为 DelphiScript 编码整理了大量资源,甚至还提供了相关工具,详见 此处。如果您想认真学习这门语言,那里的资源会很有帮助。

保存您的项目

开始使用 Altium Scripting 后,您很快就会积累起一个庞大的脚本库,可能需要保存和/或共享。要在 Altium Designer 中创建新的 Scripting 项目,请依次进入 File > New > Script > Script Project。右键单击新创建的项目,然后依次选择 Add New to Project > Script Unit。这样会创建一个新的 .pas 文件,作为您的脚本:

Chat GPT

图 1:向现有项目添加脚本文件

接下来我们希望将其保存到 Altium 365 工作区。首先请确保您已将项目保存在本地。之后再次右键单击该项目,依次进入 History & Version Control > Add Project to Version Control…

Chat GPT

图 2:将项目添加到 Altium 365 Workspace

 

随后按照提示将项目保存到您的 Altium 365 Workspace。有关如何在 Altium Designer 中编写、运行和调试 DelphiScript 代码的更多说明,请参阅 Altium 文档。

完整生成式 AI

现在一切准备就绪,我们可以开始深入探索了。ChatGPT“有可能”从头到尾完整编写 DelphiScript。我在这里使用“有可能”而不是“有能力”,因为它并不总是能写对。我们来看一个简单示例:让 ChatGPT 生成一个 DelphiScript 脚本,列出我项目中的所有网络。我一开始给出的提示其实非常模糊:

ChatGPT

图 3:ChatGPT 的初始回复

它自动理解成我要列出某个 PcbDoc 中的所有网络。其实我想要的是原理图中的网络,所以我进行了纠正:

ChatGPT

图 4:ChatGPT 多次尝试编写正确脚本中的一次

 

我没有展示它为我生成的全部代码,但接下来发生的是:我多次运行代码,结果 Altium Designer 不断报错,例如“Undeclared Identifier: eNet”或“Expected: in For Pin in Component. Pins Do.”。我所做的只是一次次把这些错误反馈给 ChatGPT,而到了第五次,它终于生成了我需要的代码。

很明显,它并不擅长从零开始生成 DelphiScript,但它确实能够做到这一点。在您气得想把键盘砸到墙上之前,请记住这一点。

AI 助手

ChatGPT 也可以作为一种更像助手或结对程序员的存在。您可以用 ChatGPT 来分析代码、查找 bug,或者帮助您调整特定功能。我们可以拿一个现有的 Altium Scripting 示例,让 ChatGPT 按照我们的需求进行修改。

目前有不少资源(尤其是托管在 GitHub 上的)提供了 Altium Scripting 示例。我将使用 Altium 官方提供 的那些示例。可在 此处 找到。

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

ChatGPT

ChatGPT 随后给出的代码完全符合这个要求。坦率地说,如果您对编程稍微熟悉一点,这其实相当简单。接下来我们提高一点难度,需要结合 Altium Scripting 的上下文知识。

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

Using ChatGPT for Altium Scripting

 

第一次尝试就因为未声明标识符而失败:

ChatGPT

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

我把这个问题告诉它后,它当然先道了歉。接着它又因为“Undeclared identifier: Name”错误再次失败,但到了第三次,我终于在正确的位置得到了所需的网络标签:

ChatGPT

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

很明显,随着复杂度增加,ChatGPT 一次就把脚本写对的概率会越来越低。我的经验是,只要坚持下去,它最终通常能够写对,尤其是在您能稍微帮它一把的情况下(前提是您能看懂它生成的代码)。 

结论

本文首先介绍了 Altium Scripting、如何创建项目,以及如何将其保存到您的 Altium 365 工作区。随后我们通过 ChatGPT 的示例进行了深入演示:既包括让它从零开始完整生成脚本,也包括让它修改我们提供的脚本。我们展示了它的能力,同时也说明了它并不总是正确无误。虽然它并不完美,但在您的 Altium Scripting 学习过程中,它无疑可以充当一个向导。更重要的是,有它总比没有它要好得多。

关于作者

关于作者

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

Related Technical Documentation

相关资源

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