allegro skill选择和获取函数

合集下载

Cadence应用如何在allegro中使用skill

Cadence应用如何在allegro中使用skill

Cadence应⽤如何在allegro中使⽤skillCadence软件应⽤:如何在Allegro中执⾏SkillHow to Perform Skills in Allegro ToolsDoc Scope : Allegro SkillDoc Number : SFTEC11005Author : Daniel ZhongCreate Date : 2011-11-09Rev : 1.00⽬录1Skill简介 (3)2在Allegro命令⾏中加载和调⽤Skill (3)2.1命令⾏加载Skill (3)2.2命令⾏调⽤Skill (4)3在Allegro启动时加载Skill (5)3.1allegro.ilinit⽂件 (5)3.2编辑allegro.ilinit (7)4在Allegro菜单栏上调⽤Skill (8)4.1Allegro系列⼯具的菜单⽂件(.men) (8)4.2菜单⽂件搜索路径 (10)4.3定制菜单 (11)1Skill简介Skill是Allegro软件⼆次开发的接⼝,⽤此语⾔编译的⽂件可以在Allegro中载⼊和调⽤。

我们可以通过编写不同的Skill程序⽂件,在Allegro⼯具中实现各种原有命令不能实现或不⽅便实现的功能。

Skill语⾔的语法结构和C++语⾔类似,⼯程师如果有⼀定C语⾔编程基础,使⽤Skill语⾔时就会很⽅便了。

对于Skill程序的⽤户,不需要对Skill语⾔有过多的了解,只需要知道如何在Allegro中加载和调⽤Skill即可,本⽂就是介绍了如何加载和调⽤Skill,可以采⽤两种⽅式:■在Allegro命令⾏中加载和调⽤■在Allegro启动⾃动加载,在Allegro菜单上调⽤2在Allegro命令⾏中加载和调⽤Skill本章介绍如何在Allegro命令⾏中加载和调⽤Skill,分为以下两个⼩节:■命令⾏加载Skill■命令⾏调⽤Skill2.1命令⾏加载Skill以本站资源下载中的⼀个skill程序clinecut.il为例,将此⽂件移动或复制allegro设计⽂件(.brd)所在⽬录。

AllegroSkillbasic

AllegroSkillbasic
行窗口。或者执行setup->User Preferences?->Skill
勾选telskill也可以打开。
2.打开运行窗口后用load函数将写好的skill加载进来。
比如
load(“E:/GetSymbolName.il”)更好的做法是将此路径写入pcbenv文件夹下的allegro.ilinit文件里。这样每次打开Cadence时会自
且可以开发自己的基于Cadence平台的工具。2.SKILL语言支持一套类似C语言的语法大降低了初学者学习的难度同时高水平的编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言 既可以用作最简单的工具语言也可以作为开发
任何应用的、强大的编程语言。SKILL可以与底层系统交互也提
expressions ; bCondition为假(nil)的时候执行unless里面的命令
)3. Ifif( bCondition then
exp1 ;bCondition 为真的时候执行
else
if( bCondition then exp1 ;bCondition为真的时候执行elseexp2 ;bCondition 为假的时候执行)4.While
3.axlGetSelSet()获取所选择object的dbids。Thank you!
Allegro Skill Basic1.基本数据类型及操作2.基本语法结构3.执行4.实例Skill 1.Cadence的SKILL语言是一种基于通用人工智能语言—Lisp的交互式高级编程语言(LISP即List Processing表处理)熟悉Skill语言对于使用Cadence工具的用户来说不仅可以提高工作效率而
Sym_dbid=axlGetSelSet()

在Allegro环境下运行SKILL

在Allegro环境下运行SKILL

在Allegro环境下运行SKILL
1、如何在PCB Editor 环境下启动SKILL 命令行解释器界面?
 直接输入set telskill,然后你就会看到一个新的界面,这个界面就是用来运行SKILL 函数和命令的解释器。

 当然,如果你不觉得界面太小,可以直接在命令行中输入skill ,然后运行SKILL 函数和命令,也可以正常执行,退出可以直接输入exit。

 2、如何执行写在文件中的SKILL 函数和命令?
 首先,我们按照上面的方法运行SKILL 命令行解释器,然后输入getSkillPath(),回车后,可以看到返回一个路径的列表,如果我们的SKILL 文件放在这些路径下,就可以直接使用load()函数加载使用,如果你的SKILL文件没有在其中的一个路径下,就需要带上绝对路径,这个地方大家需要注意‘/’和‘’的区别,我不想做什幺理论描述,看看下面的例子:
 假如你有一个文件放在C:下,名字为test.il,一般SKILL 文件都以.il 为后缀
 使用Ultra-Editor 打开文件,输入如下内容:
 procedure( tr_Example_1()
 prog( ()
;打印一串字符
printf(“Let’s go today. “)
;弹出一个对话框
axlUIConfirm(“Hello, SKILL... “)
return(t)。

AllegroSkill加载–Layouto

AllegroSkill加载–Layouto

AllegroSkill加载–LayoutoTiny_Y如何加载skill按照Allegro的启动逻辑,软件启动时会自动加载allegro.ilinit文件,所以常规通过此文件加载skill文件(当然你也可以直接在打开的Allegro软件中直接加载,仅对此次加载生效)1.获取Skill文件,放到指定目录(见下方skill文件内容)2.打开allegro.ilinit文件,加载上方的skill文件(见allegro.ilinit文件内容)3.这样每次启动Allegro软件时,skill文件都会被加载如何调用skill功能CIW直接在Skill环境下,调用函数,如getSkillPath()是一个定义好的skill功能,在Command窗口直接输入skill getSkillPath()则可以直接执行这个程序。

skill环境内容参考后面的资料PCB Editor搭载SKILL 环境Bindkeys见后续章节axlCmdRegisteraxlCmdRegister( “20” 'BOTTOM)一般设计者会将skill程序,使用axlCmdRegister注册一个快捷命令,一同写在il文件中(但其实写在任何skill环境的文件中并被加载,都能生效),这样通过定义的快捷命令即可调用此skill功能更多见Cadence SKILL 第二节语言一览,SKILL函数调用章节内容Allegro PCB启动1.读取allegro PCB 编辑器的env 文件2.然后运行allegro.ilinit 文件3.最后自动加载菜单配置文件allegro.menallegro.ilinit文件用户在程序启动时加载的skill代码。

顺序在在加载数据库或菜单之前,如果需要在数据库打开时执行操作,请通过axlTriggerSet API 注册回调触发器Allegro默认识别两个路径X:\Cadence\SPB_XX.X\share\pcb\etc;%home%\pcbenv。

allegro skill使用说明详解

allegro skill使用说明详解
5.1.1删除无网络属性的过孔Isolating Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1.2半拉线的处理Dangling Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1.3无连接的铜皮处理Unconnected Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.1测试点处理Testpoint... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.1增加ICT测试点Add ICT Testpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.2点亮无测试点网络检查Hilight no Testpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2替代和更新过孔 Replace via和unpdate via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3铜皮自动平衡处理Auto Balance Film . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.4数据库检查DB Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.5更新DRC Update Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.6DRC浏览 DRC Walk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6后处理阶段辅助工具POSTEDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.1光绘层设置与层说明设置Artwork Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2自动增加层叠表处理Add Layer List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3丝印摆放处理Refdes Place for newbrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.1丝印方向规则旋转处理Rotate Refdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.2丝印自动定位处理Locate All Refdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.4丝印检查Refdes Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.1无丝印检查No Refdes Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.2丝印方向检查Refdes Direction Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.3丝印交错检查Refdes Cross Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.4丝印覆盖检查Text Overlap Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.5环回/直角走线检查Loop/90 Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

allegro加载skill函数到菜单

allegro加载skill函数到菜单

學習了一段時間allegro,你是不是也對SKILL函數有了一定的認識,也收集了不少skill 函數吧,但是不是又對函數的應用感到麻煩和被動。

現在就說一下怎樣把函數載入到應用功能表,利用滑鼠點擊輕鬆執行。

因為好多人不知道怎麼使用,我也是摸索出來的,供大家參考,獨樂樂,與人樂樂,孰樂?!1、設定環境變數:首先建立SKILL和SUTENV(這個檔案名可以隨意起,)兩個資料夾,位置可以隨意放置,不過我是放在了candence 資料夾下,這樣感覺比較整齊。

然後添加環境變數系統變數和使用者HOME 變數,如下圖。

系統變數HOME變數2、設定allegro.ilinit 文件:在SUTENV 檔下建一個PCBENV 資料夾,接著在PCBENV 下面建一個名為allegro尾碼為ilinit的文檔,可以用寫字板或者像UE 程式編譯之類的軟體,設置語法如下setSkillPath(buildString(append1(getSkillPath() "D:/Cadence/SPB_15.7/skill")));load("xxx.il");load("xxx.il");………“D:/Cadence/SPB_15.7/skill”就是設定好的SKILL 資料夾的位置,注意“/”而不是“”,“xxx.il”代表著所要載入的函數。

現在可以把所需的skill函數全部放在SKILL資料夾裡吧。

3、修改allegro中的功能表:可以選擇把設定的功能表放在HELP之前,名子自己定,內容自己添加。

設置的代碼如下:POPUP "&Sutee"BEGINMENUITEM "&Align Symbol", "align_sym"MENUITEM "&DRC Walker", "drc walk"MENUITEM "&Hilight Net without TP", "hl_ntp"MENUITEM "&Netlist Editor", "net_editor"MENUITEM "&Unit mil/mm", "cale"……………END"&Sutee"主功能表名字,"&Align Symbol"下拉式功能表內顯示的名字,"align_sym"載入的skill 函數的檔案名。

Allegro Skill详细安装及常用插件介绍指南

报告大纲1.安装技巧2.功能简介3.实例演示4.讨论反馈一、Stella的安裝1.新建Stella资料夹放*.il程式文件,如路径为C:\。

2.将Stella程序数据夹中的Menu中的内容copy到Allegro的安装目录中,如D:\Cadence\SPB_15.5.1\share\pcb\text\cuimenus中。

3.将Stella程序数据夹中env文件夹中Allegro .ilinit copy 至“Allegro工作路径”\pcbenv内。

4.新增环境变量Stella_skill 值为C:\Stella。

Stella的安裝(这里只介绍一种方法,都大同小异)1、新建Stella资料夹于C:\。

Stella文件夹主要用于放*.IL文件。

此文件夹名称和存放路径都可选。

Stella的安裝2、将Stella程序数据夹中的Menu中的内容copy到Allegro的安装目录中如D:\Cadence\SPB_15.5.1\share\pcb\text\c uimenus中。

实际上就是修改D:\Cadence\SPB_15.5.1\share\pcb\text\cuimenus文件夹中的allegro.men文件,增加菜单功能,增加一栏命令。

Stella的安裝POPUP "&Stella"BEGINMENUITEM "Align Symbol", "align_sym"MENUITEM "DRC Walker...", "drc walk"MENUITEM "Place Xrf", "skill xrfin"MENUITEM "Find Stubs", "find_stubs"MENUITEM "Find Dang Line/Cline", "find_dang"MENUITEM "Hilight Net without TP", "hl_ntp"MENUITEM "Hilight Via without Net", "hlvia"MENUITEM "Netlist Editor", "net_editor"MENUITEM "Mil To Mm", "conv"MENUITEM "Cal", "cal"MENUITEM "Clinecut", "clinecut"END此下面还可继续添加其它命令Stella的安裝三、将Stella程序数据夹中env文件夹中Allegro .ilinit copy 至C:\pcbenv内。

Allegro_Skill_axl函数简介

Allegro Skill axl函数简介1.allegro skill简介1.1. AXL-SKILL专用于allegro的skill被称为AXL-SKILL,只有使用这些专用的函数才可以直接访问allegro 的database。

结合skill语法和这些专用函数可以编写出实现各种功能的命令。

专用于allegro 的skill都是以axl开头,比如axlClearSelSet()。

1.2. 运行AXL-SKILL在allegro中输入skill就得到了AXL-SKILL的运行环境,在这样的环境中可以直接调用AXL-SKILL命令/函数,另外输入set telskill可以得到一个尺寸大小可调的skill开发窗口。

(万一没有弹出窗口,尝试在allegro菜单里面,选择setup->userprference->skill->telskill----OK)1.3. AXL-SKILL Databaseallegro中的每个对象object(比如IC元件,net)都有一个对应的dbid(database identifiers),AXL-SKILL操作allegro的也正是这些dbid。

dbid对象:在不同的级别上的dbid是不一样的,比如在Design以及包含的database对象有Property Dictionary,Lines,Text,Polygons,Shapes,Property Definitions,DRCs,Vias that are Padstack object types,Symbols that are Symdef object types,Components,Nets;而在Symbol级别上则是PPins that are Padstack object types,Vias that are Padstack object types,Lines,Arcs,Text,Polygons,Shapes。

allegro加载skill函数到菜

allegro 加载skill 函数到菜
学习了一段时间allegro,你是不是也对SKILL 函数有了一定的认识,也收集了不少skill 函数吧,但是不是又对函数的应用感到麻烦和被动。

现在就说一下怎样把函数加载到应用菜单,利用鼠标点击轻松执行。

因为好多人不
知道怎幺使用,我也是摸索出来的,供大家参考,独乐乐,与人乐乐,孰乐?!
1、设定环境变量:
首先建立SKILL 和SUTENV(这个文件名可以随意起,)两个文件夹,位置可以随意放置,不过我是放在了candence 文件夹下,这样感觉比较整齐。

然后添加环境变量系统变量和用户HOME 变量,如下图。

系统变量
HOME 变量
2、设定allegro.ilinit 文件:
在SUTENV 文件下建一个PCBENV 文件夹,接着在PCBENV 下面建一个名为allegro 后缀为ilinit 的文档,可以用写字板或者像UE 程序编译之类的软件,设置语法如下
setSkillPath(buildString(append1(getSkillPath()
“D:/Cadence/SPB_15.7/skill”)));
load(“xxx.il”);
load(“xxx.il”);。

Allegroskill基本语法

1.先执行一次cdr,读取后面的List单元。
2.对第1步读取的值,执行car,读取其第一元素。
3.对第2步读取的值,执行car,读取其第一元素。
实例:caaar('(((1 2 3)(4 5 6))(7 8 9))) => 1等同于car( car( car( l_list)))
caadr('(((1 2 3)(4 5 6))(7 8 9))) => 7等同于car( car( cdr( l_list)))
let( ()
println("Hello World!")
)
); end procedure
1.1.4
SKILL支持2种注释方式:
a. /*…*/用于注释多行,像C一样
b. ;用于注释单行,类似C的//
1.1.5
integer5
float5.0
string"abc defg"
list'(1 2 3 "a")
1.1 SKILL
SKILL是用于Cadence软件二次开发的语言。我们关于SKILL的介绍基于SKILL语言参考档和llegro SKILL的应用。
1.1.1
SKILL语法支持lisp格式的语法,但是我们不推荐,推荐类C的语法格式。
Lisp示例:(max 5 3) => 5
C示例:max(5 3) => 5
第一个位置保存List的首个数据元素,第二个位置保存后面的List单元(除第一个元素之外的所有元素组成的表),它可以为空数据。
用car函数可以得到保存在第一个位置的List元素:car( aList) => 2
用cdr函数可以得到保存在第二个位置的List单元:cdr( aList) => (3 4) List
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

allegro skill选择和获取函数
对Allegro中的对象进行操作,比如移动、删除,都需要先选择和获取该对象的dbid。

选择操作包含一些选择设置比如是只选择Symbol还是Symbol和Via都可以选等等,然后通过axlSelect 相关函数来选择具体的对象,然后是axlGetSelSet函数来得到那些被选择的dbid。

AXL-Skill函数支持多种选择的方式,比如单选择一个对象,或者是框选多个对象,又或者说是使用Temp Group的方式来选择多个对象,不过通常对象只有在当前可见(Visible)的情况下才可
以被选择上(除非设置了invisible选项)。

选择设置和被选择了对象的有效性会一直持续到用户使用其它的系统命令,比如allegro的Add Cline命令,因为allegro的命令将会改变一些系统的dbid,所以的Skill之前获取的bdid都
会变成无效的(removed)。

通常的选择和获取操作如下,
设置Find Filter来控制将要被选则的对象类型;
选择对象的三种模式:单选,多选或通过名字来选择;
从被选择的对象中添加和移除对象
3.1 Find Filter设置函数
函数定义axlSetFindFilter(?enabled lt_enabled ?onButtons lt_filterOn) 功能:该函数最直观的理解是,它可以设置allegro的Find Filter。

参数:lt_enabled,该参数将决定哪些Find Filter中的元素可以被选择;
lt_filterOn,该参数将决定可以被选择的元素中,哪些已经被选中了。

参数支持的类型如下:"PINS","VIAS","CLINES","CLINESEGS","LINES","LINESEGS","DRCS","TEXT","SHAPES","SHAPESEGS","BOUNDARY_SHAPES","VOIDS" ,"VOIDSEGS","SYMBOLS","FIGURES","COMPONENTS","FUNCTIONS","NETS","INVISIBLE",
"NAMEFORM","ALLTYPES","ALL",
"DYNTHEMALS","GROUPS","GROUPMEMBERS"
用法示例:axlSetFindFilter( ?enabled list( "vias" "pins" "nets") ?onButtons list( "vias" "pins")) => 设置Find Filter中的vias,pins,nets为可以被选择的,而其它的选项将被设置成不可操作的,默认选择了vias和pins。

3.2 点选函数
axlSingleSelectPoint() => 运行该命令之后,allegro将提示你点选一个design中
的对象。

axlAddSelectPoint()
axlSubSelectPoint()
3.3 框选函数
axlSingleSelectBox() => 在allegro中框选
axlAddSelectBox()
axlSubSelectBox()
3.4 通用选择函数
axlSelect() => 支持多种选择方式于一身,单选,框选,Temp Group
3.5 其它选择函数
axlAddSelectAll() =>不需要用户交互的选择方式,只根据Find Filter的条件
axlSubSelectAll()
axlSingleSelectName()
axlAddSelectName()
axlSubSelectName()
axlSingleSelectObject()
axlAddSelectObject()
axlSubSelectObject()
3.6 获取和清除函数
axlGetSelSet() => 获取之前的选择函数选择的dbid
axlGetSelSetCount()
axlClearSelSet() => 清除之前选择函数选择的dbid(注:当一个对象被选择了以后,将会被自动的以Temp Highlight的方式高亮,而该函数运行以后将会清除这个对象的选择
状态,同时该对象也不再高亮)
allegro skill选择和获取函数
3.7 示例:选择一个Symbol,并将其移动到另一个相对位置
axlClearSelSet() ; 清除之前可能存在的被选择函数选择的元素,避
免引入不合适的dbid,这是个好习惯
axlSetFindFilter(?enabled '("noall" "symbols" ) ?onButtons '("noall"
"symbols" )); 设置Find Filter的Symbols选项处于选中状态
axlSingleSelectPoint(); 请通过点击选择的方式,选择一个Symbol对象 dSym = axlGetSelSet(); => (dbid),将得到被选择的dbid列表,尽管这个列表只有一
个元素
axlClearSelSet(); 清理掉你自己做过的选择,避免给别的程序带来错误,同样是个好习

dSym = car(dSym); => dbid,的到Symbol的dbid
;dSym->?? ;=> 将得到这个Symbol的相关属性
ix = 100;
iy = 200;
axlTransformObject(dSym, ?move ix:iy); =>将该Symbol右移100mil,上移200mil ; axlTransformObject() 函数的作用是将一个或多个symbol由一个地方移动、翻转、旋
转到另一个新的位置。

; axlTransformObject(
; lo_dbid/o_dbid
; ?move l_deltaPoint
; ?mirror t/nil
; ?angle f_angle
; ?origin l_rotatePoint
; ?allOrNone t/nil )。

相关文档
最新文档