本帖最后由 XYX365 于 2013-7-2 09:10 编辑
最好的资料就是自带的帮助文档了,里面对每个函数的用法及举例都有详细的说明,下面列出几本常用的帮助文档:
==============================================================================
SKILL Language User Guide SKILL的基本概念,特点,写法等。
SKILL Language Reference 作为SKILL Language User Guide的手册文件,具体列出了每一个函数的使用方法。
Allegro PCB and Package User Guide:Skill Reference AXL-SKILL函数手册 AXL=(Allegro eXtension Language),
AXL-SKILL是 CADENCE SKILL核心, 在ALLEGRO中的一个扩充,
用来访问与操作 PCB_Editor 及其数据文件。
SKILL Development Help SKILL程序开发教程
SKILL Development Functions Reference 作为SKILL程序开发教程的手册文件,具体列出了开发调试函数的使用方法
Interprocess Communication SKILL Functions Reference IPC函数手册
SKILL++ Object System Functions Reference SKILL++函数手册
==============================================================================
==============================================================================
看帮助手册时候的一些格式表示
| 竖线表示单个argument的不同取值可能
{ } 和竖线配合使用,用于超过三个以上的不同取值可能的情况。
[] 方括号表示可选的
... 三点省略号表示可以重复先前的参数
argument... 表示至少要一个参数,但是也可以多个
[argument]... 表示可以多个参数,但也可以是一个都没有
=> 向右的箭头表示函数运行后的返回结果
/ 斜线表示函数返回的不同可能结果
例子:
list( g_arg1 [g_arg2] ...) => l_result
needNCells( s_cellType | st_userType x_cellCount) => t / nil
==============================================================================
一、SKILL语言简介 SKILL语言是CADENCE公司为其软件提供的二次开发语言,通过编写SKILL程序,可以查询和操作ALLEGRO中的各种对象,例如走线、元件、过孔等。在ALLEGRO中的一些默认的功能就是使用SKILL语言写出来的程序;该语言的语法类似于C和C++,有这两种语言编程经验的人可以比较快的上手。 二、SKILL程序加载及执行 1)要使用SKILL程序,首先要了解SKILL程序的加载机制,在CADENCE的安装路径中有两个路径与加载SKILL程序有关,也即SKILL的默认加载路径,它们是:$allegro_dir\share\local\pcb\skill 和 $allegro_dir\share\pcb\etc\skill ,其中,$allegro_dir表示ALLEGRO的安装目录。在ALLEGRO程序启动的时候,会到这两个目录中去寻找初始化文件。
2)初始化文件:该文件的名为 Allegro.ilinit ,这个文件在SKILL程序的加载中具有至关重要的作用,其内容本身就是可以是SKILL程序,通常这个文件被用来加载其他的SKILL程序,语法如下: load("xxx.il") 或者,对于源代码加密过的SKILL程序: load("xxx.il" "pwd") 其中,"pwd" 表示加密时使用的密码,由程序的加密者提供。 "xxx.il" 表示需要加载的SKILL程序的文件名,如上所述,SKILL程序的默认加载路径有两个,只需要将需要加载的SKILL程序放在这两个目录中,并在Allegro.ilinit中添加相应的LOAD语句,则ALLEGRO在启动的时候就将自动加载这些SKILL程序。
3)执行程序:SKILL程序的执行可以有下列三种方式: a)在skill程序中使用 axlCmdRegister 函数,将SKILL程序中的主函数注册成一个命令,然后在命令行中输入这个命令,回车就可以执行这个函数。例如在附录示例的程序中,主函数名称是“grids” 则在程序中使用:
axlCmdRegister( "grids_cmd" `grids) 注册一个名为 grids_cmd的命令,然后在ALLEGRO的命令行中输入grids_cmd并回车即可执行该程序。 b) 如果在SKILL程序中没有使用注册命令的函数,则如果需要在allegro平台下执行某一个函数,需要使用以下的格式: skill function_name
c) 通过菜单执行:在使用SKILL程序的过程中,为了不需要记忆命令,可以通过将命令添加进菜单的方式来执行程序,菜单文件的路径在 $allegro_dir\share\pcb\text\cuimenus目录中,文件名为allegro.men ,用文本编辑器打开这个文件,其基本格式很简单:
MENUITEM "command_display", "command_name"
"command_display" 表示菜单显示的文字,如下图所示:
"command_name" 表示点击此菜单的时候所执行的命令。
三、SKILL程序开发 Skill程序同C语言程序一样,是一种面向对象编程语言,其基本单位是函数,整个skill程序构筑在函数的基础之上。 <一>、参考书籍(按重要性排序) 1、《SKILL Language User Guide》: SKILL的基本概念,特点,写法等; 《SKILL Language Reference》: SKILL Language User Guide的手册文件,具体列出了每一个函数的使用方法。 2、《Allegro PCB and Package User Guide:Skill Reference》AXL-SKILL函数手册 AXL=(Allegro eXtension Language);AXL-SKILL是 CADENCE SKILL 核心 在ALLEGRO中的一个扩充。用来访问与操作 PCB_Editor 及其数据文件; 3、《SKILL Development Help》:SKILL程序开发教程; 《SKILL Development Functions Reference》:作为SKILL程序开发教程的手册文件,具体列出了开发调试函数的使用方法; 4、《Interprocess Communication SKILL Functions Reference》:IPC函数手册; 5、《SKILL++ Object System Functions Reference》:SKILL++函数手册。 <二>、源程序编辑、调试环境 skill程序源代码编辑可以采用任何文本编辑器,但是为了提高编码的效率和查看程序的方便,推荐采用带语法高亮的文本编辑器,比如ULTRAEDIT或者NOTEPAD++,使用这两种编辑器的时候需要手动将SKILL语言的关键字输入进配置文件,否则该编辑器的语法高亮功能将不能使用,具体操作方法见编辑器本身的帮助文档。 由于skill语言是一种解释执行的语言,也即脚本语言,在执行程序的时候不需要编译成二进制代码,而是通过CADENCE提供的skill解析器来进行即使解析执行,因此,不同于C语言,SKILL语言的开发过程中没有编译环境,启动SKILL命令解释器的方法是在命令行输入skill并回车即可,在这种状态下,即可输入SKILL命令(函数)进行skill程序的调试和执行。 调试的过程因为skill的调试环境需要单独的LISENCE支持,而我们现有的授权文件均不具备这个条目,因而给SKILL程序的调试带来比较大的麻烦,目前唯一的调试途径就是逐条执行SKILL程序,然后查看skill解释器本身给出的出错信息进行判断,虽然效率不高,但是如果方法得当,还是可以迅速定位绝大部分的程序错误。 |