Office/CAD/EDA/CAE软件脚本开发/二次开发简要介绍
本文主要介绍办公软件(Word、Excel、PPT、Access、Visio),CAD(Auto CAD、Solid Works、CATIA),EDA(Altium Designer、Pads、Cadence)和CAE(ICEM、Fluent)等软件的脚本开发方式或者二次开发方式,以及相关的参考资料。
不同的软件的参考资料的丰富程度并不相同,参考资料语言影响了可以理解此种软件的开发方式,在Office办公软件的脚本开发中Excel脚本开发的资料最为丰富,在CAD软件中以Auto CAD软件最为丰富,在EDA软件中软件脚本及开发的中文资料较少,功能模块开发方式需要人为理解。CAE软件的介绍就更少(不是没有)了。
目前比较常用的办公软件包括Word、Excel、PPT、Access这三款软件都是微软公司出品的,在购买电脑时已经预装的办公软件,Visio软件不是Office的一部分,需要单独安装,WPS是国产金山公司的一款软件产品,目前这几款办公软件都支持VBA,微软的办公软件是自带的自家的VBA,Visio本来是一家独立的公司,后来微软把这个公司买了,成为微软的一个独立的产品,金山公司是为数不多的支持VBA的国产公司。 支持VBA的软件的CAD建模软件有很多,其中比较常见的包括Auto CAD、SolidWorks、CATIA等软件,当然也有其他软件支持VBA的CAD软件,这些软件的厂家在微软的官方上可以查到,一共一百余家厂商,大部分都是国外的公司。 使用VBA在三维建模软件中自动运行和使用鼠标在 三维建模软件中的操作相同,在三维软件中有些函数是具有交互功能的,意思就是在程序运行到当前行需要客户用鼠标指定一个图元对象或者使用键盘输入一个字符串程序才能往下执行,大部分的函数是不具有交互功能的,方便程序运行,在支持VBA的软件中有一个脚本编辑器,脚本编辑器中有一个对象浏览器,对象浏览器中有该版本的脚本所支持的类(在VBA或者C++里面未实例化的类叫做类,但是在Delphi中未实例化的类叫做对象,对象在使用时还是需要实例化)。 在脚本编辑器中可以使用Application函数获得当前软件的顶层接口,这个接口可以根据对象的层次关系获得子接口或者子接口的子接口,也可以获取子接口的属性或者执行子接口中的函数和子程序。 在VBA编辑器中的对象浏览器提供了在VBA里面可以使用的类,类中有函数或者属性,还有一些类中是一些常数,方便在程序中使用的,常数可以代表固定的数值、字符串等等,根据目前的对象浏览器提供的常数来看,大部分常数都是代表的数值。 在Auto CAD2007和SolidWorks2013软件安装好之后是可以直接使用VBA编辑器的,而在CATIA V5R20安装好之后不能直接使用VBA的编辑器,但是可以使用CATIA提供的一个简易的编辑器,简易的编辑器是可以访问对象浏览器的,在AutoCAD和 SolidWorks中对象浏览器的库的个数只有很少的几个,可以的非常方便的定位的库里面的类,而CATIA的库的个数非常多,这是由于CATIA软件在设计时是一个个模块组成的,草图模块就是草图模块,曲面模块就是曲面模块,创成设计模块就是创成设计模块,模块之间相互独立,常用的模块不到20个,而在VBA的对象浏览器中这些模块的类被放在一个个库中,一个库对应一个模块,库里面的类可以根据选择的库分离出来,大部分库里面的类的熟练都比较少,库里面的类是主演被集合在几个常用的库中。
办公软件的脚本开发二次开发介绍这几种(Word、Excel、PPT、Visio、WPS)
Word
Word为微软办公全家桶中的文字处理软件,从Word 2007以后都已经开始支持XML文件格式,Word软件中已经集成了VBA,通过VBA可以实现文档编辑的自动化,可以访问Word文档中的各种元素,进行批量化的操作。也可以将文档的操作录制下来在VBA编辑器中修改。
Excel
Excel进行脚本开发的参考书籍是办公软件进行脚本开发中最多的,使用Excel进行脚本开发,可以实现统计自动化、进行网页数据的抓取(这个功能只要有VBA的功能都可以实现),Excel中的VBA是软件中自带的,
PPT
Visio
使用Visio进行脚本开发,目前没有发现有介绍介绍开发方式的书籍,但是从微软的官网中有介绍使用Visio脚本开发的资料,在Visio中使用脚本开发和Word、Excel中极性脚本开发都是类似的。Visio中自带VBA开发环境,可以在Visio开发环境中进行脚本开发,也可以在其他支持VBA或者兼容VBA的环境中创建一个Object对象,从而操作Visio中的对象。
使用Visio进行脚本开发,开发环境的方式可以分为两种,一种是Visio自带的VBA开发环境,另一种是第三方软件或者脚本开发环境,使用Visio的脚本功能制作产品手册非常的方便,所有的图页都可以放置在在相同的坐标上,避免了手动对不齐的问题。
Visio的VBA开发界面
Visio的对象浏览器
WPS
WPS办公软件是为数不多的支持VBA的国产软件,(支持VBA的软件目前为止有100余家,目前只有这100余家属于经过微软授权的,可以在软件产品中VBA,这100余家的公司名单在微软的官网可以找到,在这个网页上:https://docs.microsoft.com/en-us/previous-versions/msdn10/bb190546(v=msdn.10) , )
在WPS软件中使用自带的脚本开发环境中使用的语言为JScript,其他软件或者开发环境中也是可以通过VBA程序启动WPS软件的,在其他软件下对Excel或者Word进行操作,代码在不更改的情况下可以直接用于WPS软件。
CAD软件的脚本开发介绍这几种(Auto CAD、CATIA、SolidWorks)
Auto CAD
CATIA
基于CATIA的应用程序开发可分为以下几类: 标准格式的输入输出。用跨CAD平台、跨PDM、标准格式的输入输出,以便进行数据格式的转化。 使用自动化应用程序接口(Automation API)的宏。用于自动化(Automation)组件、日志、Visible Basic和JavsScript/Html的开发,这是一种交互方式的定制。该定制方式允许用户获取CATIA的数据模型。Automation API具备了与任何OLE所兼容的平台进行通信的能力。 智能构建(Knowledgeware)。智能构建是一项预定义的易用服务,驱动的管理和重用是从函数、规范到组件和系统一步一步实现的。它是一种反应式的、基于规则的、面向目标的客户化方式,允许定制和外部代码的集成。它用于三个方面:知识顾问、知识专家和产品工程优化。 交互式的用户定义特征,是一种编制式的定制开发。通过聚合现存的特征来交互地定义新的数据模型。收集现存规范,指定输入,从而创建一个IUDF(用户定义特征)、IUDF可以通过引用一个Catalog保存在.CATPart文档中。它可以交互地被客户使用。 CAAV5的C++和Java应用接口。这是基于组件的定制开发。CAA是组件应用架构(Component Application Architecture)的缩写,是Dassault Systemes产品扩展和客户进行定制开发的平台,它使全球诸多开发商可参与Dassault Systemes的研发。利用CAA可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密。
CAA(组件应用架构,Component Application Architchture)架构图
CATIA进行脚本开发的语言支持宏语言、CATScript、MS VBScript这三种脚本语言,C++、
CATIA的对象浏览器
SolidWorks
SolidWorks采用了COM技术标准,将复杂的应用程序设计成许多小的、功能相对简单的组合模块,各个组件软件完成某些特定的功能,同时按照COM标准对外提供接口,然后把这些独立的软件组合在一起促成功能强大的二次开发接口,任何支持OLE(Object Linking and Embedding,对象的链接与嵌入)和COM的编程语言都可以作为Solid Works的开发工具。如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次开发。
EDA软件的脚本开发/二次开发介绍这几种(Altium Designer、Cadence、Pads、立创EDA)
在EDA软件中用户比较常用的包括Altium Designer、Pads和Cadence这三款软件都支持脚本操作,三种软件的脚本都不是VBA。
Altium Designer
Altium Designer软件是使用Delphi语言开发的,此软件的各种架构都有明显的Delphi语言软件的影子,Altium Designer软件的原理图、PCB服务器都是对象继承方式,Altium Designer中的软件中的控件有113个,大大方便了脚本界面开发。Altium Designer软件支持服务器开发和脚本开发,服务器/插件开发支持Delphi、Microsoft C#、C++这三种语言,脚本开发支持Delphi Script、Enable Basic、JScript和VB Script这4种脚本语言,另外还有一种语言为Query Language也是属于脚本语言,用于在原理图和PCB文档中进行图元对象查找的,可以使原理图或者PCB文档中的图元对象高亮、其他图元对象变暗或者变灰等视图的操作,这种语言并不像其他4种脚本语言一样可以创建、移动、变换、删除图元对象,只能对视图进行操作。
服务器/插件的开发使用编译型的语言Delphi、Microsoft C#、C++进行开发,开发完成后的程序需要集成在Altium Designer软件中执行,其特点的编译后生成的软件能和开发环境的AD版本中使用,不能在其他版本中使用,比如在AD9中使用Altium Designer二次开发,开发后的插件并不能在AD13中使用,如果一个单位使用了AD9进行了一些功能模块的开发,如果软件升级的话之前的项目需要重新维护,造成一些客户单位并不想升级,Altium Designer软件处于商业方面的考量,卖新不卖旧就不太愿意将此项技术拿出来,之前有单位使用过Altium Designer软件的二次开发的版本,但是目前Altium Designer软件并不对中国大陆开放,如果想要学习使用Altium Designer的二次开发的难点主要由两个,其一是参考资料“Altium Designer RTL Reference for Servers”和“Using the Altium Designer RTL”,这两份资料是介绍Altium Designer软件的二次开发的介绍,目前在各个版本的软件中并没有找到这两份文件,另一是Altium Designer软件的SDK开发包。如果有以上两种资料和DEMO工程就可以开始Altium Designer的插件开发了。虽然不能在Altium Designer中使用二次开发的方式进行功能扩展,但是在Altium Designer软件中使用脚本开发的方式进行功能扩展.
AD的脚本开发一共支持4种脚本语言Delphi Script、Enable Basic、JScript和VB Script,不同的脚本语言赋值、循环控制、判断和基础的语法有些许的不同,开发起来都差不多,在同一个脚本工程中支持多种不同的语言文件,在同一个脚本工程中,使用不同语言写的函数和全局变量是可以相互调用的,比如说使用VB Script脚本语言写了一个函数,在同一个工程下的另外一个JScript语言中可以调用VB Script脚本中的函数,在不是同一个脚本工程下就不能相互调用不同文件下的函数,这里有一种语言Enable Basic,此语言是在上古时期Sax Basic、Cypress Enable Scripting同时代出现的一种语言,和VB或VBS语言的语法基本相同。这种语言不能调用AD中的113个控件,但是可以使用为10个左右的几个控件,控件的创建、调用和响应函数都在同一个脚本文件中,其他Delphi Script、JScript和VB Script这三种语言在创建Form脚本文件时在表单(或称为窗体)是可以直接拖进脚本系统中的全部控件的,脚本中的控件一共是113个,大部分控件为Delphi编程软件中的控件,一小部分是Altium Designer中单独的控件,在Altium Designer的较少控件的参考资料里面,控件的继承方式大部分都是有误或者继承中有遗漏的,和《Delphi7 VCL继承关系全图》中并不匹配。
在Altium Designer中使用脚本功能,可以启动安装的各种服务器,服务器的为DXP平台的的各种插件,在文件管理器中就是DLL文件,启动某个服务器就是将对应的DLL文件加载到内存中,比如启动原理图服务器就是将“AdvSch.dll”文件加载到内存中,在使用服务器的函数之前需要将服务器启动,使用服务器的API函数接口首先需要获取服务器的顶级接口,然后一级一级的向下访问服务器的各种函数接口,层级关系遵循Microsoft OLE Automation Server guidelines,不同版本的服务器数量有些许不同,目前通过API函数可以访问的服务器有DXPAPI、原理图API、PCB API、工作空间API、集成库API、FPGA API,其他服务器比如文本编辑器等就不支持或者是不开放API访问的方式,原理图编辑API为原理图文档服务器,对应操作的文档为SCHDoc和SchLib,PCB编辑器API为PCB文档服务器,对应操作的文档为SchDoc、SchLib、工作空间管理器API为工集合管理的的服务器对应的文档为LibPkg,FPGA API为FPGA编译服务器,对应的文档为v或vhd,在脚本中使用自动化对象可以有多种方式,使用进程、API函数等方式。在AD脚本系统中的进程的概念类似于办公软件中的宏,在AD帮助文中的的单词为process,也有一些文档解释为过程。
Altium Designer软件的程序开发方式
其中Altium Designer软件是使用Delphi软件开发的,在脚本系统中是使用的Delphi的脚本系统,目前Altium Designer脚本系统支持4种脚本加一种脚本语言,4种脚本语言分别为Delphi Script、JScript、VB Script和Enable Basic脚本语言,另外一种脚本语言为查询语言,查询语言并不能在原理图文档或者PCB文档中添加,自动,删除文档中的图元对象,查询语言的功能是在原理图或者PCB文档中高亮图元对象的,可以快速的定位原理图和PCB中的图元对象。 在Altium Deisigner中可以创建TCL脚本语言的文档,根据官方的资料TCL解析器,在脚本系统中并未实现。 在Altium Designer脚本系统中提供的前4种脚本语言中,前面三种脚本语言可以分为一类,后面一种脚本语言可以分为一类。 在Altium Designer脚本系统的菜单栏中前面三种脚本语言都是可以创建Script From和Script Unit这两种模式,创建Script From是可以自动生成一个脚本文件和一个窗体文件,脚本文件中可以编写窗体或者控件的响应的函数和自定义的函数和方法。窗体文件为一个Windows的经典窗口界面的文件,窗体和在窗体上放置的控件的各种属性和事件的链接关系都是放置在窗体文件中的。 窗体文件中一共可以放置7个大类共113种控件,7个大类中前6个大中的控件都是来自Delphi软件,后面1个大类控件是Altium Designer提供的仪表控件。 在5个大类的控件中的继承关系都是和Delphi开发工具的VCL相同,第6个大类控件是类似于XP风格的控件,里面的属性事件不是和Delphi 中的VCL相同,没有和前面5个大类的继承关系。第7个大类是Altium Designer中提供的仪器仪表的控件,控件的风格非常漂亮,基本功能可以根据控件提供的属性直接使用,这些功能还包括一个和Altium Deisgner nano相互通信的属性,可以和下位机通信完成非常丰富和强大的功能,目前关于这些控件的继承关系和高级使用方法,软件的帮助PDF文档,帮助chm文档和官方都没有相关的介绍资料。 在Altium Designer的脚本系统中编写脚本可以分为两种类型,一种成为进程(Progress)和函数接口。这里进程的概念和计算机的任务管理中的进程不一样,Altium Designer中的进程类似宏,使用鼠标在软件内操作,软件会将菜单栏、工具栏、快捷键、鼠标操作等作为命令通过客户端发送给服务器,这些命令也就是进程。客户端语言将不同的进程发往不同的服务器,然后由不同的服务器完成指定的操作。Altium Designer中带有宏录制的功能,但是这个功能并未完全提供给客户,要使用宏录制的功能,需要在软件中做一些特殊的操作。 函数接口就是在脚本里面使用API函数接口一层一层的获取下一级的接口、执行方法、获取属性的方法,Altium Designer中的架构为C/S架构,C/S架构中就是有一个客户端,多个服务器,Altium公司将C/S架构在AD中命名为DXP平台,客户端就是软件的界面和框架,服务器就是在DXP平台中安装的各个服务器,比如原理图服务器、PCB服务器、文本处理服务器,每个服务器在安装目录下都对应这个dll和ins的文件,dll文件就是服务器的动态链接库文件,语言使用某个服务器的功能就需要从磁盘用将某个服务器对应的dll文件加载进内存中,ins文件为服务器对应的进程列表。服务器中可以执行的进程都在ins文件中的,服务器的dll文件和ins文件是一一对应的。 在脚本系统中最常用的3个顶层函数接口为Client、SCHServer和PCBServer,对应于支持VBA的软件就类似于Applcation,Application是获取VBA软件的顶层接口的函数,而在AD的DXP平台中Client、SCHServer和PCBServer这三个函数就是获取客户端、原理图服务器、PCB服务器的顶层接口的函数。 在原理图服务器和PCB服务中的原理图和PCB文档中类似于一个容器,里面可以放很多图元对象,有的图元对象中还可以放很多图元对象,比如在原理图中的元件和PCB中的封装,在这两种图元对象中还包括图元对象,可以抽象为容器中套容器。各个图元对象中大量使用了继承关系,和可视化组件的继承关系类似,子程序、函数、属性在子图元对象中继承,父图元对象有的属性,子图元对象中一定有。
Altium Designer API函数接口
DXP平台
Altium Designer中原理图的层次访问关系(此图为两级加三级的部分)
Altium Designer的原理图文档中的图元对象的继承关系
如上图所示,这三张图为原理图文档中图元对象的继承关系,和Delphi软件中的VCL类似,每种图元对象都继承了它上一级对象的全部方法和属性,在继承的对象中上一级的方法或属性都可以使用,在原理图文档中可以创建可访问这些图元对象,访问原理图中对象不是像访问原理图服务器中的属性和方法,而是将原理图文档抽象化为一个容器,在原理图中的每个图元对象都是一个对象,在原理图服务器中创建一个过滤器(有的也翻译为迭代器),根据过滤器依次访问在原理图中的图元对象,同时也可以在过滤器中设置图元对象的种类和坐标范围和层级关系(这里的层级关系表示图元对象在原理图中的层级关系,好比在原理图中有一个矩形和元件中的矩形就不是同一个层级)对不同类型的图元对象进行过滤。
Cadence
Cadence的脚本开发分为原理图的脚本开发和PCB的脚本开发,Cadence的原理图设计软件使用的是OrCAD,PCB设计软件使用的是Allegro,两种环境中所支持的脚本不是通用的。在OrCAD中和Allegro中进行脚本开发都支持宏录制的功能。 OrCAD中支持两种脚本语言,一种语言为Cypress Enable Scripting脚本语言,语法形式类似于Altium Designer中的Enable Basic Script脚本语言。另外一种语言为TCL脚本语言,TCL脚本语言支持基本的语法规则,和OrCAD中支持的语法命令,支持循环、判断等控制语句。 Allegro中支持两种脚本语言,一种为宏脚本命令,另外一种语言为Skill。宏脚本命令为传统的宏语言,不支持赋值、变量、函数、循环、判断等语句
Cadence程序开发方式
在Cadence中的包括capture和allegro这两款软件,两款软件相互独立,脚本系统是不通用的。Capture软件是画原理图的软件脚本系统支持Basic语言和TCL语言,Basic语言是使用的Sax basic脚本语言,和VBA的语法规则基本相同,TCL脚本语言是一种工具脚本语言,可以通过tcl脚本语言获取原理图和原理图库中的图元对象。可以创建,移动,翻转原理图和原理图库文档中的图元对象,在pads中可以使用basic语言调用tcl脚本语言,执行tcl语言可以通过多种方式执行。 1.通过capture的命令窗口中执行脚本文件 2.通过windows的cmd执行 3.通过第三方tcl编译器执行 allegro中支持两种开发方式,一种为allegro的命令,可以直接在窗口中执行的命令,命令类似于宏的功能,在allegro中支持1000多个命令,只有很少一部分较为常用。另外一种开发方式是使用AXI-SKILL语言进行开发,支持人机界面。
OrCAD宏脚本开发 OrCAD中没有专门脚本编辑器,在编写脚本文件时可以使用OrCAD自带的文本编辑器编写脚本文件,也可以使用其他便于使用的文本编辑器编写Cypress Enable Scripting脚本代码,编写完成后添加到OrCAD软件中运行。OrCAD中不支持单步执行、越过子函数执行、跳出子函数、执行到光标处等调试功能,在执行脚本期间不能对原理图进行操作,生成的对话窗口为模态窗口,窗口关闭后才能对原理图进行其他操作。 OrCAD中的脚本支持循环、判断等控制语句,加减乘除等四则运算,支持MsgBox、Input等输出窗口和输入窗口语句,支持文件创建、复制、删除等操作,支持常用的三角函数常用的字符串等函数。 Cypress Enable Scripting脚本的执行支持在“Configured Macro”窗口中执行,支持通过菜单栏运行宏脚本文件,也支持快捷键启动宏脚本文件。 OrCAD中的宏脚本支持创建窗口和控件,支持事件响应,支持将在窗口上的事件关联到一个函数中。 在OrCAD中使用Cypress Enable脚本可以在当前原理图页面中使用,在库文档不能使用Cypress Enable脚本程序,也不支持在库文件编辑器中录制和运行宏脚本语言。Cypress Enable语言可以在原理图文档中添加、删除、移动、复制、旋转、镜像、替换图元对象。可以实现图元对象的点选、框选、全选、反选,可以对书签、错误(DRC)、端口、网络、元件、字符串进行查找,支持输入和输出对话框,支持视图的放大、缩小、区域方法、选择对象及进行放大。支持的赋值、运算语句。 OrCAD软件支持宏录制的功能,可以将使用鼠标键盘在原理图中的操作步骤以脚本的形式记录下来,在脚本里面再次运行,OrCAD不支持脚本的调试功能,如果脚本程序里面有错误,则不能在脚本文件中正常的运行,不会提示在程序中的错误位置。因此程序的调试比较困难。 Cypress Enable脚本的文件的后缀名为“*.bas”,如果在宏脚本文件中含有中文字符,则需要将脚本文件的编码格式转换为GB2312,否则在程序运行期间会出现编码错误的提示。如果在宏脚本文件中仅有英文字符,脚本文件的编码格式为UTF-8或者GB2312均可正常执行。 OrCAD中宏脚本开发功能类似于Altium Designer中通过使用带参数/不带参数的进程对原理图文档的操作。 典型应用: TCL脚本开发 在OrCAD中支持TCL(工具命令语言),属于解析型的脚本语言中的一种,可用于快速原型开发、脚本编程,GUI和测试等方面。 在TCL脚本文件中支持调用菜单栏中全部菜单栏命令,使用TCL脚本运行和使用菜单栏/工具栏/快捷键对原理图文档中操作的功能相同。 TCL脚本中的Iterate(过滤器)和Altium Designer中的过滤器的功能比较相似,都是在原理图文档的数据库中检索过滤得到原理图中的图元对象,根据获取的图元对象可以对得到的图元对象进行处理操作。 在宏脚本文件中可以运行的函数是TCL脚本的子集,也有一部分语句只能在脚本文件中使用。 在原理图界面和库文档界面中都支持TCL脚本语言。虽然OrCAD不像自动化服务器/控制器一样,程序间的支持数据共享,但是OrCAD中的脚本文件可以在Caption窗口中执行,也可以在Windows中执行,即可以通过其他的方式可以在程序间进行数据传递或者共享。 OrCAD中的TCL脚本开发类似于在Altium Designer中通过获取原理图的函数接口对文档中的图元对象进行操作。 OrCAD中TCL脚本文件的后缀为“*.tcl”。 典型应用:原理图转PDF Allegro脚本开发 Allegro的脚本开发类似于Altium Designer中的进程(此处的进程和线程进程中的进程概念不一样)命令,都是分为带参数的进程和不带参数的进行,在Allegro中分为带参数的脚本命令和不带参数的脚本命令。不带参数的命令为直接执行脚本命令,带参数的脚本命令为先执行脚本命令,再传输脚本命令的参数。这一点与Altium Designer中的进程执行方式相反。 Allegro中的脚本功能类似于Altium Designer中的带参数的进程或者不带参数的进程,AXL-SKILL二次开发功能类似于Altium Designer中通过服务器/客户端的脚本程序。 宏脚本开发 Allegro中支持宏录制和程序重放功能,在Allegro中脚本命令一共有1000余种,其中常用的不过100余种。使用脚本操作和通过菜单栏/工具栏对文档的操作功能相同。支持视图方法、缩小、平移等操作。Allegro中的宏脚本中的命令和菜单栏、工具栏、快捷键的功能相同,使用宏脚本对PCB文档的操作和通过菜单栏、工具栏、快捷键对PCB文档的操作功能相同。 Allegro中不支持判断、循环等流程控制语句,支持赋值、加减乘除等四则运算语法,可以将通过鼠标键盘在Allegro中的操作使用命令的形式记录下来,Allegro脚本文件的后缀为“*.scr”。 Allegro中没有专门的宏脚本的编辑界面,不支持单步执行、越过子函数执行、跳出子函数、执行到光标处等调试方法。 宏脚本的执行方式有两种,一种通过菜单栏文件加载执行脚本文件,另外一种通过PCB编辑器下侧的窗口中执行。 Allegro中的宏脚本支持在PCB文档中添加、移动、删除、点选、框选图元对象,给图元对象对象分配颜色、网络等功能。在宏脚本命令里面常用的命令都可以在PCB编辑器界面有对应的菜单栏、工具栏、小窗口或快捷键。 Allegro中的宏脚本开发功能类似于在Altium Designer中通过获取原理图的函数接口对文档中的图元对象进行操作。 典型应用: AXL-SKILL二次开发 Skill有专门的开发界面。在Command界面中可以脚本命令和skill命令切换。 脚本运行方式支持在命令窗口中运行,也可以在“Scripting”窗口中运行。 Skill语言支持判断、循环等控制语句、与或非等逻辑语句、加减乘除等算数运算、IO及文件处理等。 Skill支持窗口的开发,支持点击窗口上控件按钮的响应,支持访问PCB文档中的图元对象和菜单栏中的命令以及系统的参数设置。 Skill语言可以与底层系统交互,也提供了丰富的访问Cadence各个工具的接口,并且可以开发基于Cadence平台的工具。AXL-SKILL语言是专用于Allegro的SKILL语言,其特点是函数都以axl开头。只有使用这些专用的函数才可以直接访问Allegro的数据库。结合SKILL语法和这些专用函数可以编写实现各种功能的命令。用户可通过窗口、菜单、组合键和Cadence的命令输入窗口等完成指令输入的工作。 Allegro中的AXL-SKILL脚本开发类似于在Altium Designer中通过获取原理图的函数接口对文档中的图元对象进行操作。 典型应用:PCB中生成二维码
Pads
Pads是业界主流的PCB设计平台,以其强大的交互式布局布线功能和易学易用等特点,在通信、半导体、消费电子、医疗电子等当前最活跃的工业领域得到了广泛的应用。 Pad中的原理图编辑器和PCB编辑器中支持脚本开发。脚本语言在Pads中为为Sax Basic脚本语言,在语法中类似于VBA,支持自动化控制器和自动化容器,自身也可以作为ActiveX服务器接受其他软件的控制。 Pads中的Sax Basic脚本语言可以调用其他具有VBA功能的软件,也可以接受其他支持VBA功能的软件的调用。 在Pads中编写脚本的编辑器共有两个,其中一个为在软件主窗口的下侧,另外一个为专用的脚本编辑器。 宏语言支持宏语言的脚本编辑器,可以在脚本语言中添加窗口,窗口具有可视化的功能,这个功能比Altium Designer中的Enable Basic更高级一步。
Pads宏语言窗口设置界面和程序编写界面
在Pads中使用程序编写脚本和界面是相互的,写的宏语言文件可以生成可视化的界面,可视化的界面也可以生成宏语言的各个图形参数的宏语言脚本。支持脚本录制功能。
Pads程序开发方式
Pads中支持脚本开发,支持的脚本为SPSS Basic脚本语言,这个是SPSS统计软件的脚本语言,类似于或者兼容VBA,却又不是VBA的脚本语言。 Pads中的脚本系统支持创建窗口,有一个简单窗口编辑器,可以在窗口中添加10种左右的控件,控件可以和事件相关联。窗口文件和实现的函数都在同一个文件中。 Pads脚本系统的架构类似于VBA,使用Application即可获取软件的顶层接口,由于绘制原理图的软件和绘制PCB的软件是两个独立的软件,因此在绘制原理图软件中使用Application是获取原理图的顶层接口,在PCB软件中是获取PCB的顶层接口,要创建或者获取图元接口可以直接创建和访问,在Pads中没有在Altium Designer中过滤器的概念。在Pads中可以直接获取某种图元对象的总数,依次获取每个图元接口访问图元对象中的数据。而在AD中要访问图元对象的接口是通过过滤器实现的。 在Pads中有两个脚本编辑器,一个在软件界面的下方是可以执行类似于宏的命令,另一个是脚本编辑器是可以执行函数接口中的方法或者函数接口中的属性。
CAE软件的脚本开发介绍ANSYS(ICEM和Fluent)
ICEM
ICEM是Workspace平台下一个前处理软件,用于网格划分,其使用的脚本为TCL脚本语言。
ICEM是ANSYS公司WorkBench平台下面的一个专业画网格的工具,可以根据模型的拓扑关系画出质量非常高的网格,这个软件的脚本是使用TCL脚本,软件的安装目录下有大量的demo程序,目前官方和国内的培训单位没有对此功能的教程,语言慢慢研究。
ICEM的脚本一共有5种执行方式:
1.菜单栏 File->Replay Scripts弹出Replay control窗口,通过Do one或者Do all按钮执行TCL脚本。
2.菜单栏File->Replay Scripts->Run from script file弹出文件选择对话框选择脚本文件执行TCL脚本。
3.在TCL脚本文件中通过TCL命令执行TCL脚本文件,即一个TCL脚本文件启动另外一个脚本文件。
4.使用icemcfd命令设置在启动ANSYS ICEM CFD时执行所指定的脚本文件。
5.在命令窗口中使用source命令执行tcl脚本文件,例如使用“source D:\demo.tcl”命令可以执行D盘根目录下的demo.tcl脚本文件。
Fluent Fluent是ANSYS公司WorkBench平台下一个流体仿真等功能的软件,脚本语言是使用的Scheme语言,目前没有找到介绍使用此功能的资料,待研究