Allegro Skill axl函数简介
allegro skill简介
1. AXL-SKILL
专用于allegro的skill被称为AXL-SKILL,只有使用这些专用的函数才可以直接访问allegro的database。结合skill语法和这些专用函数可以编写出实现各种功能的命令。专用于allegro的skill都是以axl开头,比如axlClearSelSet()。
2. 运行AXL-SKILL
在allegro中输入skill就得到了AXL-SKILL的运行环境,在这样的环境中可以直接调用AXL-SKILL命令/函数,另外输入set telskill可以得到一个尺寸大小可调的skill开发窗口。(万一没有弹出窗口,尝试在allegro菜单里面,选择setup->user prference->skill->telskill----OK)
3. AXL-SKILL Database
allegro中的每个对象object(比如IC元件,net)都有一个对应的dbid(database identifiers),AX
L-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 database对象类型
1. database对象描述
1.1 对象类型
Figure objects:  Arcs,Branches ,Design Files,Drcs,Lines,Paths ,Polygons ,Ppins,Shapes ,Symbols ,Tees,Vias,Pads,Padstacks,Symdefs;            Logical objects:Components ,Functions,Function Pins,Nets;            Property dictionary objects;            Parameter objects:Design,Display,Layer Group,Layer,Textblock
Group,Textblock。   
1.2 基本操作
尽管有如此之多的类型,但是在allegro中的操作其实就是到合适的database元素,然后对其操作就好了。只要保证被访问的元素的dbid有效,就可以对其进行处理。
2. Figure类型
Figure在allegro PCB Editer里面一般被成为几何形状,一个Figure类型的元素通常具有如下的属性。
常见的Figure属性
属性名          类型              描述        bBox            bbox        Figure’s bounding box        branch        dbid        For etch, the figure’s branch parent          layer          t_layer    Layer of figure, nil if object is multi-layer        parent          dbid        Nonconnective owner            net            dbid        Net object if figure is associated with a net
注意: 对于所有空(dummy)网络的Figure, 它们的net属性都是"", 而不是nil。
Figure有很多的类型,每个类型都有很多个属性,具体的信息请参考algroskill.pdf文档的第二章,这里只列出其中的Line。 Line的属性列表(除Figure类型常见的属性以外的部分)
属性名          类型              描述        isEtch          t/nil            t = a CLINE; nil = a LINE      lineType        s_type        symbol: horizontal, vertical, odd        objType        string        Type of object, in this case "line"          parent          dbid          Path, polygon, or shape        startEnd        l_point      Start and end points          width            float          Width of line
3. Logical类型text函数什么意思
Logical类型其实就是和电气有关的属性,比如网络连接(net),电子器件{component)等。    Logical类型通常都具有objType, prop, and readOnly3种属性。    如果你选择了一个component,那么它的objType就是component,如果选择的是pin,则objType属性值就是
一个简单的例子Bus(总线),其它的Logical类型请参考Cadence的algroskill.pdf文件
属性名            类型              描述
groupMembers l_dbid List of xnets of the bus
name                string          Name of the bus      objType            string          “group”          type                string          “BUS”
4. Property Dictionary类型
在allegro的应用中会根据工作的需要自己定制(创建)属性——用户定义的属性(user defined properties)。Allegro支持用户创建具备如下特性的属性
NETS, COMPONENTS, FUNCTIONS PINS, VIAS, SHAPES, SYMBOLS, CLINES, LINES, DRCS, FIGURES,DESIGNS, COMPDEFS, PINDEFS, FUNCDEFS。如果你创建了一个只包含SYMBOLS类型的属性,那么你创建的这个属性只能被赋给Allegro中的Symbol对象,而不可以赋给 一个net或其它非Symbol的对象。
5. Parameter类型
Parameter的简单理解就是Allegro中个各个设置参数,举个简单的例子,系统(Design)级别的参数列表。    Design Parameter属性
属性名 可设置否? 类型 描述 accuracy no integer Number of decimal places of accuracy bBox no bbox The design’s bounding box height no float Height in user units objType no string Type of object, in this case "paramDesign" units no string Type of user units (mils, inch, micron,millimeter and centimeter) width no float Width in user units xy no point Lower left corner of design
注意: 可设置否表示的是能否通过函数axlParamSet来设置。下一章将主要讲对Allegro Parameter的操作,对参数的读取,修改与更新等等。
allegro skill Database操作相关函数
5.1 Database Read函数
和以前一样,这里只介绍部分的函数,其它的函数请参考algroskill.pdf文件。    axlDBGetDesign() => dbid,当前design的dbid,基本上来说整个design的所有信息都可以
通过这个dbid得到。比如design有多少个 component,每个component的dbid;比如design有多少drc,每个drc又分别是什么等等。
axlDBGetAttachedText(o_dbid) => text dbid,得到o_dbid对象所具有的(被attached的)text的dbid列表。该函数常用于在一个包含很多text的symbol对象上查特定text的应用中。比如我们通常会把一个design放在适当尺寸的sheet中,对应于design的各个层,sheet也会有对于的页码来表示,比如sheet的第1页是Top层,那么int1层可能就是第2页,如果你想写个程序来实现页码的自动更新,就会用到这个函数来到需要被修改的字符 (text),然后用后面将要说到的Database Create相应函数来修改选中的字符。
axlDBGetPad(o_dbid t_layer t_type) => pad dbid,获得pin,via,padstack相应层的特定pad。比如axlDBGetPad(dpin “Etch/Top" ”anti“)=>dpin对象在Top层的anti-pad的dbid。通过这个dbid又可以进一步得到pad的一些相关属性。
axlDBGetPropDictEntry(t_name) => propdefinition,得到user defined properties里面设置的各个属性的信息,比如属性类型,应用的对象。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。