通过脚本提高Altium Designer的使用效率

Altium Designer的脚本系统支持DelphiScript, Visual Basic 和 Jscript语言。无需使用外部开发工具即可编写和调试脚本,从专业级的语义文本编辑器、拖放形式的设计直到脚本调试器都包含在内。采用脚本可自动执行简单的重复任务,生成定制报告,或者直接控制设计对象。

为什么我要使用脚本?

通过Altium Designer的脚本系统可开发并运行脚本,执行设计文档中的操作。

使用脚本能够通过最小的用户输入、更少的键盘操作和鼠标点击达到设计目标!通过脚本您可以自动执行重复任务,进行编辑操作,而这在Altium Designer的现有命令中是无法完成的。例如,您可以使用脚本在PCB文档中搜索并更新基准标记,或者导出定制的网络列表。

使用脚本也可以把公司标志的位图导入到PCB中。

脚本可以有效解决的一个设计挑战就是PCB文件中的公司logo。情况如下:每次我使用Altium Designer的PCB编辑器创建PCB时都需要包括我们公司的logo,它是一个光栅类型的位图。如何实现呢?就我所知,我只能在PCB编辑器中放置线轨和矢量类型的对象。

Altium Designer 的PCB编辑器是基于矢量的编辑器,具有特定的对象集。由于logo是光栅(基于像素)图像,因此我们需要一个工具把光栅图像转换成Altium Designer编辑器中的矢量对象。

PCB Logo Creator脚本如何工作?

我们需要一个脚本来扫描位图文件,然后把每个像素转换到线轨中。在转换的过程中会进行测试,查看是否转换了相邻像素,并且通过单一线轨段替换所有的邻接像素。结果,一组小的水平线轨就构成了整个图像。

为了实现上述目标,脚本需要进行如下操作:

 

  • 提供让用户选择图像以及其他选项(如比例)的对话框
  • 检查位图是否为单色,如果不是单色则进行告警并产生异常中断。位图将显示在单层PCB上,所以只能是单色图像。
  • 扫描图像文件,检查每个像素是打开还是关闭。
  • 比较相邻像素,以便能够以单个线轨对象进行替换。
  • 支持比例尺。
  • 支持镜像以简化所需层次的放置。

 

脚本的核心就是一个算法,它扫描黑白像素,在相同线路上生成邻接的彩色像素。例如,在同一个线路上有40个相邻的白色像素,则将其转换为一个线轨。线轨的长度和宽度由用户定义的比例参数设定。因此如果有40个像素,比例是1,那么将在PCB文档中放置1mil宽、40mil长的PCB线轨。

我在此就不详细讨论该脚本了,如果您对此感兴趣,可以在Altium Designer范例中找到DelphiScript版本的PCB logo 生成器,其具体位置在本文的末尾。

PCB Logo Creator脚本范例,一个logo转换为一系列PCB线轨

通过脚本能做什么?

Altium Designer的脚本引擎支持 DelphiScript, Visual Basic, 以及 Jscript 语言。也支持 Enable Basic 和 TCL,但由于这两种语言不支持格式设计接口,因此您可能希望使用支持该接口的另外三种语言。通过格式设计接口您可以创建高级的对话框或向导,获取脚本输入参数。

使用 DelphiScript form designer设计您自己的脚本对话(格式)。

您可以采用2种方式用脚本与 Altium Designer 进行交互。第一种是进程+参数的调用,该方法的工作方式与使用标志菜单、工具栏和快捷键相同。例如,如果您想要查看 PCB 库中的所有组件并将参考设为Center,那就需要运行PCB的 process+parameter 组合,PCB:SetComponentReference + Location=Center,然后 process PCB:NextComponent. 在 DelphiScript 中编写的代码如下:

ResetParameters;

AddStringParameter('Location', 'Center');

RunProcess('PCB:SetComponentReference');

RunProcess('PCB:NextComponent');

使用该方法的一个小技巧是按住 Ctrl键,单击工具栏按钮或按钮条目,查看该命令后的进程和参数。

使用脚本与 Altium Designer 进行接口的第二种方法就是通过应用编程接口 (Application Programming Interface)。这种编程的方法要快得多而且功能更加强大,在不同的编辑器之间转换时,您可以访问 Altium Designer 自身使用的应用-到-应用功能。通过这种方法也可以访问Microsoft Windows API, 也正是通过这种方法来构建 PCB logo creator范例,部分代码如下所示:

PCBTrack.X1 := Sheet.SheetX + MilsToCoord(X1) + Offset;

PCBTrack.Y1 := Sheet.SheetY + MilsToCoord(Y1) + Offset;

PCBTrack.X2 := Sheet.SheetX + MilsToCoord(X2) + Offset;

PCBTrack.Y2 := Sheet.SheetY + MilsToCoord(Y2) + Offset;

如何在 Altium Designer中运行脚本?

脚本包括一个或多个程序。例如,某些脚本处理按钮事件,其他处理算法,还有的处理文件 I/O。作为起点,每个脚本都有一个主程序,因此您需要从 Run Script 对话框调用该程序在 Altium Designer (DXP 菜单)中运行。

如果临时使用脚本,这种方法很不错,如果要定期使用脚本,那么最好将脚本与菜单和工具栏按钮相结合。这样非常直接: 双击菜单栏底部打开定制对话框,在种类中定位 [脚本],在 Commands 列表中找到程序名,然后点击并拖动到菜单上。 打开Edit Command 对话框, 为菜单输入合适的标题。您可能需要打开脚本,或者将其作为安装项目列在 Preferences 对话框中,与菜单或按钮相关联。一旦完成,您就不需要再次打开或再次安装。

把脚本程序拖动到 PCB的Place Menu中。

下一步做什么?

除了许多范例,还有关于脚本和 API丰富的文档。要浏览这些文档,请打开Knowledge Center 面板,查找 Configuring the System > Scripting in Altium Designer. 试试 Tour of the Scripting System ,里面是概况介绍。而 Getting Started with ScriptingBuilding Script Projects 是启动脚本操作的介绍。