脚本示例参考
本参考文档介绍了 Altium 提供的示例下载 中的 Altium Designer 脚本示例。请注意,此 ZIP 文件是在 Altium Designer 10 发布时创建的。
ZIP 文件中的 Scripts 文件夹包含按脚本语言分类的子文件夹。例如,DelphiScript 脚本位于 DelphiScript Scripts 文件夹中。提供的各语言脚本示例包括:
DelphiScript 示例
所有 DelphiScript 脚本,无论是脚本单元还是脚本窗体,都具有 *.pas 扩展名。DelphiScript 脚本示例按以下脚本文件夹分类:
General 文件夹
通用脚本
\DelphiScript Scripts\General_Scripts.PRJSCR
Script Filename |
Description |
|---|---|
IniFileEg |
此脚本演示如何使用 |
Mandelbrot |
此脚本演示如何使用图形功能在脚本窗体上绘制曼德勃罗集。 |
MM |
此脚本演示如何使用 |
ShowModalEg |
此脚本演示如何使用脚本窗体的 |
SineWave |
此脚本演示如何在脚本窗体上生成并绘制正弦波。 |
TextFileConvert |
|
TicTac |
井字棋游戏。 |
UpdateTime |
此脚本演示如何使用 |
HelloWorld
\DelphiScript Scripts\General\HelloWorld.PRJSCR
Script Filename |
Description |
|---|---|
HelloWorldDialog |
使用脚本窗体显示一条简单的 Hello World 消息。 |
HelloWorld |
一个简单的 Hello World 示例,用于入门 DelphiScript 语言。 |
Zipper
\DelphiScript Scripts\General\Zipper.PRJSCR
Script Filename |
Description |
|---|---|
ZipperForm |
此脚本使用脚本引擎提供的压缩 API。此项目将设计项目及其关联文件打包压缩。 |
DXP 文件夹
DXP 脚本
\DelphiScript Scripts\DXP\DXP_Scripts.PrjScr
Script Filename |
Description |
|---|---|
ClientServerInterfacesReport |
此脚本演示如何使用 Client 接口,并获取有关服务器安装文件、窗口类型、命令和面板的信息。 |
ExtractFilesFromIntLibs |
此脚本演示如何从扩展名为 |
IntLibSearchDemo |
此脚本演示如何在集成库文件和 PCBLIB 文件中查找封装和 3D 模型。 |
OpenADoc |
此脚本演示如何使用 Client 的 |
ReportIntLibData |
此脚本演示如何使用集成库管理器和模型类型管理器接口,提取与各接口关联的数据。 |
ReportPCBViews |
此脚本报告 X2 中所有已打开的 PCB 文档及其视图。 |
ServerProcessReport |
此脚本演示如何为 X2 中所有已安装服务器的进程生成报告。 |
SettingDocumentDirty |
此脚本演示如何将文档标记为已修改,以便在执行保存命令时保存该文档。 |
DXP 版本
\DelphiScript Scripts\DXP\DXPVersion.PrjScr
Script Filename |
Description |
|---|---|
DXPVersionUnit |
此脚本演示如何查找 X2 应用程序的版本号。 |
PCB 文件夹
PCB 脚本
\DelphiScript Scripts\PCB\PCB_Scripts.PrjScr
Script Filename |
Description |
|---|---|
Count_Connection_Lines |
此脚本演示如何统计 PCB 文档中的连接线(未布线的走线),并在 Messages 面板上显示结果。 |
CreateAVia |
此脚本演示如何在 PCB 文档中创建新的过孔对象。 |
CreateComponentOnPCB |
此脚本演示如何在 PCB 文档中创建新元件。 |
CreateFootprintInLibrary |
此脚本演示如何在库文档中创建新封装。 |
CreatePCBObjects |
此脚本包含多个函数,用于在 PCB 文档中创建不同的 PCB 对象。此脚本使用 |
CreateRules |
此脚本演示如何创建两种不同的规则:最大/最小宽度规则和 Room 定义规则(范围约束)。 |
Cycle_Pcb_Cursor_Type |
此脚本在 PCB 文档中循环切换可用的光标类型。 |
DeletePCBObjects |
此脚本演示如何删除 PCB 对象并正确更新撤销系统。 |
EmbeddedObjects |
此脚本演示如何使用嵌入对象,即在当前 PCB 文档中创建和获取这些嵌入对象。 |
NetObjectAssign |
此脚本演示如何为已放置在 PCB 文档中的新对象分配网络属性。 |
PadViaCacheProperties |
此脚本演示如何对焊盘和过孔对象使用 |
PadStackInfo |
此脚本演示如何获取 PCB 文档中的各种焊盘堆叠信息。 |
QueryBoard |
此脚本查询当前 PCB 文档的电路板设置信息。 |
Undo |
此脚本演示 PCB 的撤销系统。它通过两个过程演示撤销系统的工作方式:一次整体撤销或多次局部撤销。 |
板外形复制器
\DelphiScript Scripts\PCB\BoardOutline Copier\CopyBoardOutline.PrjScr
Script Filename |
Description |
|---|---|
CopyBoardOutlineForm |
此脚本将板外形以走线和圆弧的形式复制到指定层。执行前,用户需要指定层和宽度值。 |
PCB 图像创建器
\DelphiScript Scripts\PCB\CreateRegionsFromBitmap\PCBPictureCreator.PrjScr
Script Filename |
Description |
|---|---|
ConvertPicture |
脚本的主窗体。 |
ConstructContourSetFromPicture |
用于从加载的位图创建轮廓集的脚本。 |
ConstructRegionsFromContourSet |
用于从各轮廓集创建区域的脚本。 |
封装查找器
\DelphiScript Scripts\PCB\FootprintFinder\FootprintFinder.PrjScr
Script Filename |
Description |
|---|---|
FindFootprintUnit |
使用 PCB API 在 PCB 库中查找封装。 |
From-To 生成器
\DelphiScript Scripts\PCB\FromTosGenerator\FromTosGenerator.PrjScr
Script Filename |
Description |
|---|---|
CreateInterComponentFromTos |
此脚本要求用户选择两个元件,然后连接属于同一网络的焊盘。此脚本的限制:需要将光标移出元件才能退出。运行此脚本后,需要手动重建所有网络。 |
formFormTos |
此项目的脚本窗体。 |
孔径编辑器
\DelphiScript Scripts\PCB\Hole Size Editor\Hole Size Editor.PrjScr
Script Filename |
Description |
|---|---|
HSForm |
这是特定孔径编辑器对话框,用于更改其中一种孔径。 |
HSEditForm |
这是孔径编辑器的主脚本。 |
Customsort |
此 customsort 脚本包含用于孔径编辑器脚本的排序例程。 |
铣削导出器
\DelphiScript Scripts\PCB\Mill Exporter\MillExporter.PrjScr
Script Filename |
Description |
|---|---|
MillExporter |
项目文件。将 PCB 设计导出为可由 CNC 铣床加工的格式。目前仅支持 Roland RML 铣削语言。 |
MillExporter |
此单元将 PCB 文档的板外形转换为多边形,以便为 PCB 文档生成数据,并由 CNC 铣床进行加工。 |
MMExportDlg |
此单元控制将 PCB 文档导出以供铣床加工的设置。 |
MMSetup |
在 INI 文本文件中设置供 MillExporter 使用的铣床默认值。 |
PCB 类生成器
\Delphiscript Scripts\PCB\PCB_Class_Generator.PrjScr
Script Filename |
Description |
|---|---|
PCB_Class_Generator.PrjScr |
PCB 类生成器项目文件。 |
PCB_Class_Generator_Form.dfm |
此脚本窗体与 |
PCB_Class_Generator_Form.pas |
此脚本将所选 PCB 对象的网络添加到一个网络类中,并具有对应的脚本窗体。 |
PCB 迭代器
\DelphiScript Scripts\PCB\PCB Iterators\PCB Iterators.PrjScr
Script Filename |
Description |
|---|---|
Count_pads |
此脚本统计当前 PCB 文档中的焊盘数量。 |
CountTracksInComponent |
此脚本统计当前 PCB 文档中五个不同元件的走线数量。 |
IterateComponentBodies |
此脚本获取当前 PCB 文档中的元件体。 |
IterateNets |
此脚本演示如何遍历当前 PCB 文档中的网络。 |
IteratePolygons |
此脚本遍历当前 PCB 文档中的覆铜多边形。 |
IterateRegions |
此脚本遍历当前 PCB 文档中的区域。 |
LibraryIterator |
此脚本演示库迭代器的用法,并显示 PCB 库中每个封装的子对象(封装图元)数量。 |
SpatialIterator |
此脚本演示 |
PCB 层
\DelphiScript Scripts\PCB\PCB Layers\PCB_Layers.PrjScr
Script Filename |
Description |
|---|---|
Layers_Info |
此脚本获取 PCB 层叠的层信息。 |
QueryLayerPairs |
此脚本查询当前 PCB 文档中的 PCB 层对。 |
QueryLayersOfMechType |
此脚本查询当前 PCB 文档中的机械层。 |
QueryLayerStack |
此脚本查询当前 PCB 文档的层叠。 |
QueryMechLayers |
此脚本查询当前 PCB 文档中的机械层。 |
QueryUsedLayers |
此脚本查询当前 PCB 文档中已使用的层。 |
RebuildInternalAndSplitPlanes |
此脚本强制重建 PCB 的内电层和分割平面。 |
Toggle_Connect_layer_display |
此脚本切换当前 PCB 上连接层的可见性。 |
ValidateLayerStack |
此脚本验证层叠,并在层叠无效时报告警告。 |
PCB 标志创建器
\DelphiScript Scripts\PCB\PCB Logo Creator\PCBLogoCreator.PrjScr
Script Filename |
Description |
|---|---|
Converter |
用作对话框的脚本窗体,提示用户加载单色图像,然后选择走线宽度、是否镜像等。 |
PCB 对象移动器
\DelphiScript Scripts\PCB\PCBObjectsMover\PCBObjectsMover.PrjScr
Script Filename |
Description |
|---|---|
OffSetObjectsForm |
项目的窗体。 |
OffSetObjects |
演示 |
PCB 输出
\DelphiScript Scripts\PCB\PCBOutputs\PCBOutputsProject.PrjScr
Script Filename |
Description |
|---|---|
PCBOutputGenerator |
此单元执行以下操作:
|
Violations |
获取现有的违规对象,并生成概述不同违规情况的报告。 |
GetObjectClasses |
对象类报告器脚本窗体。先选择对象类,再将特定类型的对象类列表生成为文本文件。 |
PCB 规则
\DelphiScript Scripts\PCB\PCB Rules\PCB Rules.PrjScr
Script Filename |
Description |
|---|---|
IterateRules |
此脚本获取当前 PCB 的现有规则,并生成文本报告,列出所用规则及其 ID 和名称。 |
ModifyWidthRules |
此脚本修改现有的宽度约束,将小于 20 mil 的最小、首选和最大宽度更新为 10 mil。 |
PCBLIB 输出
\DelphiScript Scripts\PCB\PCBLIB Outputs\FootprintInfo.PrjScr
Script Filename |
Description |
|---|---|
FootprintInfoReport |
此脚本生成 CSV 格式的报告,列出所有封装及其名称、高度和描述。 |
交换或旋转元件
\DelphiScript Scripts\PCB\SwapOrRotateComponents\SwapOrRotateComponents.PrjScr
Script Filename |
Description |
|---|---|
SwapComponentsUnit |
交换两个相似的元件或旋转一个元件。 |
对象唯一性检查器
\DelphiScript Scripts\PCB\Unique Object Checker\UniqueObjectChecker.PrjScr
Script Filename |
Description |
|---|---|
Common |
供项目使用的通用例程。 |
ObjectChecker |
检查当前 PCB 文档中是否存在重复的网络和元件。 |
撤销网络类布线
\DelphiScript Scripts\PCB\UnRoute Net Class\UnRoute Net Class.PrjScr
Script Filename |
Description |
|---|---|
Form_ChooseNetClass |
此脚本窗体提示您选择网络类,以便撤销属于该网络类的对象的布线。 |
数值检查器
\DelphiScript Scripts\PCB\Values Checker\ValuesChecker.PrjScr
Script Filename |
Description |
|---|---|
ValuesCheckerUnit |
此脚本在生成用于加载到 CAM 编辑器的输出之前,检查 PCB 文档中的对象是否包含有效值。 |
PCBAPI 函数 |
此脚本单元包含供数值检查器对话框使用的函数。 |
SCH 文件夹
原理图脚本。
原理图脚本
\DelphiScript Scripts\SCH\Sch_Scripts.PrjScr
Script Filename |
Description |
|---|---|
AddModelToComponentScript |
此脚本演示如何向 555 元件添加仿真模型。具体方法是向此元件添加一个 |
CountPorts |
此脚本使用迭代器统计端口数量。 |
CreateComponent_on_Sch |
此脚本演示如何在原理图文档上放置元件。 |
CreateSchObjects |
此脚本通过两种方式创建原理图对象:
此脚本使用 RobotManager 接口发送原理图消息。 |
DeleteSchObjects |
此脚本演示如何使用 |
FetchParameters |
此脚本包含两个过程。第一个过程获取系统参数(文档参数),第二个过程演示如何获取元件的参数。 |
IterateSchSheets |
此脚本演示如何获取 Altium Designer 中已打开原理图图纸的句柄。 |
ModelsOfaComponent |
此脚本获取原理图文档中每个元件的模型,并生成报告,列出元件及其关联(链接)的模型。 |
ModifySchObjects |
此脚本演示如何使用 |
MoveParameters |
此脚本演示如何使用 |
ParentChild_Iterators |
此脚本使用迭代器查找图纸符号,然后在每个图纸符号中使用该图纸符号的迭代器查找图纸入口。 |
PlaceAPort |
此简单脚本演示如何在原理图图纸上放置新的端口对象。 |
PlaceSchObjects |
此简单脚本在原理图图纸上放置不同的对象。 |
ReplaceSchObjects |
此脚本将跨图纸连接器替换为端口对象,并自动传递网络信息。 |
SchDocsRenamer |
此脚本利用 Delphi Windows 单元中的 |
SimModelsOfComponents |
此脚本获取每个元件的仿真模型及其相关参数,然后生成有关这些模型和参数的文本报告。 |
UndoRedo |
此脚本演示如何在修改原理图文档时使用撤销系统。 |
UsingaSpatialIterator |
此脚本演示如何使用空间迭代器在指定区域内进行搜索。 |
UsingSchInterfaces |
此脚本演示原理图接口的使用。 |
UsingWSMInterfaces |
此脚本演示工作区管理器接口的使用。 |
原理图库脚本
\DelphiScript Scripts\SCH\SchLib_Scripts.Prjscr
Script Filename |
Description |
|---|---|
CheckPins |
此脚本检查库中符号的引脚是否有效。 |
CreateComp_in_Lib |
此脚本演示如何在库中创建新符号。 |
CompLibReader |
此脚本使用 |
LibIterator |
此脚本演示如何遍历原理图库并获取符号。 |
ParametersOfSymbolsInALibrary |
此脚本演示如何使用迭代器获取原理图库中符号的参数。 |
SymbolPrimsIterator |
此脚本演示如何获取符号的图元。 |
原理图转换器
\DelphiScript Scripts\SCH\Circad Translator\Sch Translator.PrjScr
Script Filename |
Description |
|---|---|
StringUtils |
此单元处理数据类型。 |
DesignSettings |
此单元负责读取 CirCad 数据的设置表。 |
Log |
此单元负责生成包含结果的日志文件。 |
ImportUtils |
此单元负责将 CirCad 数据转换为 Altium Designer 可用的数据。 |
InputForm |
此单元处理转换器对话框。 |
Test |
此独立单元负责测试 CirCad 数据。 |
元件替换器
\DelphiScript Scripts\SCH\CompReplace\ComponentReplacer.PrjScr
Script Filename |
Description |
|---|---|
ReplaceSelectedComponent |
将原理图上选定的元件替换为 |
连接关系
\DelphiScript Scripts\SCH\Connectivity\NetInfoPrj.PrjScr
Script Filename |
Description |
|---|---|
Connectivity |
此单元为 PCB 工程中当前活动原理图或选定原理图上的元件引脚生成包含引脚网络信息的参数。 |
DefnForm |
用于处理用户输入的脚本窗体。 |
字体编辑器
\DelphiScript Scripts\SCH\Font Editor\Fonts Editor.PrjScr
Script Filename |
Description |
|---|---|
FontsDialog |
此脚本演示原理图字体管理器接口的使用。 |
导入引脚
\DelphiScript Scripts\SCH\Import Pins\ImportPins.PrjScr
Script Filename |
Description |
|---|---|
ImportPinsForm |
|
ChangeMappingForm |
Change Mapping 对话框用于映射 |
ConvUtils |
此脚本包含 |
PinData.CSV |
此文件包含供 |
更新封装位置
\DelphiScript Scripts\SCH\UpdateFootprintLocations\FootprintPathUpdater.PrjScr
Script Filename |
Description |
|---|---|
UpdateFootprintPathsOfComps |
原理图元件具有封装(PCB 模型)属性及其库路径属性。有时,元件的封装名称相同,但来自不同的库。 |
用户自定义参数
\DelphiScript Scripts\SCH\UserDefinedParameters\UserDefinedCompParameters.PrjScr
Script Filename |
Description |
|---|---|
ComponentParameters |
此脚本演示如何为层次化工程中原理图设计的元件创建、修改和删除用户自定义参数。 |
Processes 文件夹
进程脚本
\DelphiScript Scripts\Processes\Process_Scripts.PrjScr
Script Filename |
Description |
|---|---|
Clrins1 |
此脚本演示如何删除用户指定区域内的对象。 |
Clrins2 |
此脚本演示如何删除用户指定区域内的对象。清除对象之前会提示用户。 |
CirWiz |
此脚本窗体生成一个简单的滤波电路,并将其放置在原理图图纸上。 |
PCBColor |
此脚本演示如何使用 |
PCBLayer |
此脚本演示如何使用 |
PlacePCBPolygon |
此脚本使用 |
PlaceSchPort |
此脚本使用 |
PublishToPDFScript |
此脚本将当前工程的 OutJob 文档发布为 PDF,并跳过 Publish to PDF Settings 对话框。 |
QuikCopy |
此脚本演示如何选择对象,然后使用 |
RunCommonDialog |
此脚本演示如何调用 Client 模块的 Common 对话框并获取参数。 |
ShowNetlist |
此脚本演示如何使用 WorkspaceManager 的 |
SimpleExample |
此脚本演示 |
WSM 文件夹
工作区管理器脚本。
WSM 脚本
\DelphiScript Scripts\WSM\WSM_Scripts.PrjScr
Script Filename |
Description |
|---|---|
AddDocToProject |
此脚本演示如何在新的 PCB 工程中插入原理图图纸。首先需要在 |
Netlister |
此脚本演示如何为原理图工程生成特定 PackingList 格式的文件。 |
ProjectReporter |
此脚本查找 X2 中当前打开的工程,包括自由工程。自由工程是一组不属于任何工程的文档。 |
UsingMessagePanel |
此脚本演示如何在 Altium Designer 的 Messages 面板中插入文本消息。这是一种实用的调试工具。 |
网表生成器
\DelphiScript Scripts\WSM\ProtelNetlister\ScripterProtelNetlist.PrjScr
Script Filename |
Description |
|---|---|
ScripterProtelNetlist |
此脚本演示如何使用 WorkSpace Manager 接口生成 Protel 类型的网表。网表文件会生成在 Projects 面板上当前项目的 |
FPGA 文件夹
交换 ID 更新工具
\Delphiscript Scripts\FPGA\SwapIdsUpdater\FPGASwapIds_Project1.PrjScr
| 脚本文件名 | 说明 |
|---|---|
| UpdateConstraintUnit | 此脚本允许您更改 PCB 文档中 FPGA 元件引脚的交换组 ID,而无需调用 FPGA 引脚交换管理器。 |
| CheckNameValueUnit | 名称检查与处理脚本。 |
JScript 示例
在脚本集合(下载)中,JScript 示例位于 Scripts\JScript Scripts\ 文件夹内。JScript 脚本的扩展名为 *.js。
Script Filename |
Description |
|---|---|
AddDocToProject |
此脚本演示如何在 PCB 项目中插入图纸。首先需要在 |
BuiltInFunctions |
此脚本演示如何使用内置日期和数学对象,并通过 |
CopyBoardOutlineForm |
此脚本将板框以走线和圆弧的形式复制到指定层。 |
GetScriptEngineInfo |
获取 Microsoft 脚本引擎的版本号。 |
HelloWorld |
一个简单的 Hello World 示例,用于介绍 JScript 语言。 |
ParentChild_Iterators |
此脚本使用迭代器查找图纸符号,然后在每个图纸符号内部使用其迭代器查找图纸入口。 |
ServerProcessReport |
此脚本演示如何为 Altium Designer 中所有已安装服务器的进程生成报告。 |
SineWave |
此脚本演示如何在脚本窗体中绘制正弦波。 |
ViaCreation |
此脚本演示如何在 PCB 上创建新的过孔对象。 |
VBScript 示例
在脚本集合(下载)中,VBScript 示例位于 Scripts\VB Scripts\ 文件夹内。VBScript 脚本的扩展名为 *.vbs。
Script Filename |
Description |
|---|---|
AddDocToProject |
此脚本演示如何在新的 PCB 项目中插入原理图图纸。首先需要在 |
CopyBoardOutline |
此脚本将板框以走线和圆弧的形式复制到指定层。执行前,用户需要指定层和宽度值。此脚本使用 PCB 对象模型。 |
GetScriptEngineInfo |
获取 Microsoft 脚本引擎的版本号。 |
HelloWorld |
一个简单的 Hello World 示例,用于介绍 VBScript 语言。 |
ParentChild_Iterators |
此脚本使用迭代器查找图纸符号,然后在每个图纸符号内部使用其迭代器查找图纸入口。此脚本使用原理图对象模型。 |
ServerProcessReport |
此脚本演示如何为 Altium Designer 中所有已安装服务器的进程生成报告。 |
SineWave |
此脚本演示如何在脚本窗体上生成并绘制正弦波。此脚本使用组件和脚本窗体。 |
ViaCreation |
此脚本演示如何在 PCB 文档中创建新的过孔对象。此脚本使用 PCB 对象模型。 |