基于Altium Designer脚本系统的二次开发

  • 格式:pdf
  • 大小:1.09 MB
  • 文档页数:5

2015年第3期 桂林航天工业学院学报 (总第79期) JOURNAL OF GUILIN UNIVERSITY OF AEROSPACE TECHNOLOGY 信息与电子工程 

基才 

脚本 Altium Designer 

系统的二次开发 

熊川 

(桂林航天工业学院 电子信息与自动化学院,广西桂林541004) 摘 要论文提出了基于VBScript脚本程序开发制图向导、一键规则设置、批量修改焊盘、自动创建板边界及支柱孔、 

添加Logo图案等功能的辅助工具。该工具可简化PCB设计的常规操作,为Altium Designer用户提供了高 效和个性化的设计。 关键词Ahium Designer;VBScript;二次开发;焊盘;Logo图案 中图分类号:TP311.52 文献标志码:A 文章编号:2095—4859(2015)03—0303~05 

Altium Designer的初始版本为TANGO,之 

后较长时间以Protel命名,2006年澳大利亚 Altium公司正式推出Altium Designer,该软件继 

承了原有的原理图设计、PCB编辑、拓扑逻辑自动 布线、电路仿真、信号完整性分析、PCB版图输出 

和制造等功能,还集成了板级和FPGA系统设计、 基于FPGA和分立处理器的嵌入式软件开发以及 

现代设计数据管理功能,使得Altium Designer成 

为业界第一款也是唯一一款电子产品开发的完整 解决方案_】-21。 

Altium Designer拥有企业工程师、高校师生 和电子爱好者等多种用户,不同用户对软件的使用 

需求也不一样。在设计过程中,用户总希望将繁琐 的、重复的操作集成化、模式化。鉴于用户的个性 

需求,论文提出利用Altium Designer强大的 VBScript脚本系统,开发集制图向导等多个功能 

的辅助工具,以更快捷的方式完成设计任务,提高 设计效率。 

1开发环境分析及开发方案 

1.1开发环境分析 

1.1.1 Altium Designer SDK软件包开发环境 为适应用户特定的设计功能需求,Altium公 

司为用户提供软件开发包Altium Designer SDK (Server Devopment Kit)L3]。依靠SDK软开开发 

包,用户就可以按照实际需要扩展Altium 

Designer系统,制定独特的底层应用程序,同时可 以创建复杂的交互界面来操纵设计数据 ],并使这 

些设计数据成为PLM、PDM、目录管理以及其它 

业务系统中的一部分。 

1.1.2插件(plug—in)开发环境 

Altium Designer的设计资源管理器(Design Explorer)是一个强大的集成平台,为用户提供现 

成的开发环境,使开发者能快速开发产品,并以插 件程序(plug—in)“服务”方式运行于设计资源管 

理器后台。 

1.1.3脚本系统(Script)开发环境 

Altium Designer拥有强大的脚本系统,可以 采用多种语言编写脚本程序,通过API接口与 

Altium Designer内部功能单元进行高级对话和调 

试,该系统支持VBScript(以下简称VBS)、 

DelphiScript和Jscript等语言。最大的特点是无 需外部开发工具就可编写和调试程序,而且同样具 

有专业级的语义文本编辑器和脚本调试器。 

1.1.4 过滤器(Filter)开发环境 

Altium Designer的过滤器取代了老版本的全 局功能,用户可通过查询条件、过滤脚本和进程参 

数等方式进行规则设置或对象操作。为更加便捷, 

*基金项目:广西区教育厅教育科学十二五规划课题《基于“双元制”模式的SMT岗位人才培养基地建设的研究》 (2o13ci13);桂林航天工业学院科研项目《prote199 SE辅助功能的二次开发》(X11R029)。 

一作者简介:熊川,男,四JII巴中人。副教授。研究方向:EDA技术、应用电子技术。 

3O3 2015年第3期 桂林航天工业学院学报 (总第79期) JOURNAL OF GUILIN UNIVERSITY OF AEROSPACE TECHNOLOGY 熊川/文 

Start=False 

End select 如果像素为黑色。则在PCB水平放置2/3像素线段。 

If Start Then MyTrack=PCBServer.PCBObjectFaetory(eTrackObject,eNoDimension,eCreate—Default) MyTrack.Width=MilsToCoord(SealeLogoV) 

MyTrack.X1=BaseX1+MilsToCoord(xt ScaleLogoV) MyTrack.Y1=BaseY+MilsToCoord(FlipY SealeLogoV) 

MyTrack.X2=BaseX2+MilsToCoord(FlipX ScaleLogoV) MyTrack.Y2=MyTrack.Y1 

MyTrack.Layer=ToLogoLayer Board.AddPCBObject(MyTrack) 

End if Next 

Next 2.2.2批量修改焊盘程序开发 单双列多引脚元件分开处理。对于设置椭圆形焊 

高校学生或电子制作爱好者多采用热转印手盘的元件,在编写程序时要检测系统坐标、元件坐 

工制板,由于工艺精度限制,常用元件的焊盘尺寸 标与焊盘排列方向的关系,然后自动对应处理 

需要增大至1.5 mm~2 mITl之间,为加强焊接机XSize和YSize的数值,确保椭圆方向正确。其主 

械强度,用户通常将单双列多引脚元件的焊盘设成要程序段如下: 

椭圆形。因此,在修改焊盘时,需将阻容类元件和 

过滤筛选元件及焊盘 

Iterator=CurrentPCBBoard.BoardIterator—Create Iterator.AddFilter—ObjectSet(MkSet(eComponentObject)) Iterator.AddFiher—LayerSet(MkSet(eTopLayer)) 

set component=Iterator.FirstPCBObject 

componentList=TlnterfaceList.Create 

while not component is nothing if component.selected then 对选择元件的焊盘执行修改 

padIteratorHandle Component.Grouplterator—Create padlteratorHandle.AddFiher—ObjeetSet(MkSet(epadObject)) 

padList=TlnterfaceList.Create 

set pad=padIteratorHandle.FirstPCBObject 

While Not pad is nothing padList.Add(pad) 

set pad=padIterat0rHandle.NextPCBObject 

Wend if component.Rotation 90 or component.Rotation 270 then xysize=comysize 根据坐标关系.交换Xsize和Ysize 

comysize eomxsize 

comxsize xysize end if 

f0r I=0 to padList.count一1 

3O6