allegro的二次开发
- 格式:ppt
- 大小:467.00 KB
- 文档页数:10
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)所在⽬录。
Module reuse1.在orcad中画好模块的原理图,设定好封装,做好drc,做好元件编号。
2.在annotate-->allegro reuse中,选中generate reuse module, renumberdesign for using modules,在选中unconditional之后将renumber design for using modules前的钩取消(即取消选择),其它不选。
3.生成netlist.4.将netlist导入到allegro,布线,布局,PCB如果没有rename等需要与orcad进行back Annotate的交互动作,则可直接选tools-->create modules生成mdd文件;5.mdd文件的文件名一定要定义为:DSN NAME_ROOTSCHEMATIC NAME.mdd。
DSN NAME是orcad中的dsn文件名(如上图的),ROOT SCHEMATIC NAME是这个文件中的原理图页所在的文件夹的名字(如上图所示的)。
注意:如果这里定义不对,那么reuse时就无法找到mdd文件。
定义好的mdd文件如下图所示:6.对PCB进行网络导出,然后在orcad中back annotate如下所示;(1)如图1所示图1(2)选择网表导出的路径,如图2所示(3)打开模块PCB所对应的原理图(并且此原理图必须是导出网络到此模块PCB的原理图)对原理图进行back Annotate 操作,如下图所示1)将TO.DSN项目高亮显示2)选择Tools-back Annotate,选择Allegro页面,勾选上Generate Feedback fil;Allegro PCB Editor的路径选择模块PCB所在的路径;Netlist路径选择刚刚模块PCB导出的网表所在的文件夹即可,Output保持不变,在Back Annotation 中勾选上Update Schematic;(如下图所示)点击确定完成PCB反编回原理图。
Cadence软件教程(二)(Allegro基础教程)仅供内部学习使用PCB Allegro软件启动如左图示,单击PCB Editor,弹出右下图对话框,作图示选择设置。
3Allegro界面4Allegro界面介绍Allegro软件界面除主菜单,功能图标,主窗口外,还有五个子窗口Command,World View,Options,Find,Visibility。
当鼠标靠近功能图标时,会显示英文功能注释。
Options:当前命令参数;Find:操作对象选项;Visibility:可视层开关;7Visibility层开关在Visibility窗口,Views的下拉菜单中有Gerber参数设置,结合Etch,Via,Pin,可快速显示每层数据信息。
GTA,GBA:装配层;(A ssembly)GTL,GP1,GP2,GBL:电气层;GTO,GBO:丝印层;(O verlayer)GTS,GBS:阻焊层;(S oldermask)GTP,GBP:钢网层;(P astemask)GD1:钻孔层;(D rawing)GM1:拼板外形;(M echanical)如:GTO + TOP(All):TOP层信息。
Views下拉菜单中的view文件是怎么来的?8Display\Color设置层及网络颜色,控制所有层的开关;9由原理图导出网表在ORCAD中打开*.dsn格式原理图(原理图是由电路设计师提供,要求调用标准CIS库设计),依如下图示导出网表,网表默认存放在allegro文件夹中。
10在Allegro中导入网表在成功导出网表后,接下来就是在allegro中导入网表。
打开该*.brd文件,依如下图示操作。
11画PCB外形用线宽为0.1mm的2D Line线在Board Geometry\Outline层绘制。
点图一所示图标,或菜单Add\Line,同时Options作图二示设置,在主窗口点左键绘制(坐标点不好控制),或在Command窗口输入坐标。
allegro 技巧Allegro 技巧Allegro 是一个流行的开源软件库,用于在音频和视频应用中实现实时流处理。
它提供了一套丰富的工具和功能,使开发者能够轻松地创建高性能的音频和视频处理应用程序。
在本文中,我们将探讨一些使用 Allegro 的技巧,以帮助您更好地利用这个强大的库。
一个重要的技巧是使用 Allegro 的资源管理系统。
在开发过程中,我们经常需要加载和卸载各种资源,例如图片、音频和字体文件。
使用 Allegro 的资源管理系统,我们可以方便地统一管理这些资源,避免内存泄漏和资源浪费。
通过使用 Allegro 提供的函数,我们可以通过文件名加载资源,并在不再需要时进行释放。
这样,我们就可以更好地管理我们的资源,并确保程序的性能和稳定性。
另一个重要的技巧是使用 Allegro 的位图操作功能。
在许多图形应用中,我们需要对位图进行各种操作,例如缩放、旋转和裁剪。
Allegro 提供了一套强大的位图操作函数,可以方便地实现这些操作。
例如,我们可以使用 Allegro 的函数来缩放一个位图,使其适应不同的屏幕分辨率。
此外,我们还可以使用 Allegro 的函数来旋转一个位图,以实现一些特殊效果。
通过充分利用 Allegro 的位图操作功能,我们可以轻松地实现各种复杂的图形效果,提升我们应用程序的用户体验。
使用 Allegro 还可以方便地处理用户输入。
在许多应用程序中,我们需要响应用户的各种输入事件,例如鼠标点击和键盘按键。
Allegro 提供了一套简单易用的输入处理函数,可以方便地获取和处理用户的输入。
例如,我们可以使用 Allegro 提供的函数来检测用户是否按下了某个键,以及鼠标是否在某个区域内被点击。
通过使用 Allegro 提供的输入处理函数,我们可以实现用户友好的交互界面,并提供更好的用户体验。
另一个重要的技巧是使用 Allegro 的音频处理功能。
在许多音频应用中,我们需要对音频文件进行播放、录制和处理。
Allegro的一些实用操作技巧生成并导入常用的参数设置文件在设计过程中生成自己习惯的参数设置文件会大大提高效率。
首先,设置好自己习惯的color,design,parameter和artwork等选项卡,然后点击File --> Export --> Parameters 将所有设置导出,保存为.prm 文件。
之后在下一次设计时便可以使用File --> Import --> Parameters 的操作将保存的.prm 文件导入,将参数设置为自定义的。
设置常用布局的布局模式复用在应用大型复杂的工程中,有些布局需要多次复用,采用这种方法可以极大程度的减少冗余操作。
首先完成一组需要布局的元件的布局设计选择Placement edit ,选中布局好的一组元件,点击place replicate create,右键done , 再选择原点(pick origin , 一般左键点击空白处即可),便可生成.mdd 文件保存。
选择需要进行重复布局的未布局元件,点击place replicate apply ,便可以看到已保存的布局设置,直接应用即可快速布局。
allegro 丝印对齐_Cadence Allegro 17.2高级功能- Label Tune 批量字符对齐功能在Allegro17.2的版本里面有个AllegroProductivity Toolbox可选高级组件,勾选该复选框可以使能高级组件所带来的众多高级命令。
直接选择Allegro Enterprise PCB Designer Suite,这个功能比较全AllegroProductivity Toolbox组件所带来了很多高级命令,今天我们一起学的Label Tune就是其中一个。
Label Tune是用来做批量的元件字符对齐操作的命令,可以支持对丝印、显示、装配层的字符对齐操作。
我们知道PCB设计里面,丝印可以给贴片和识图的工程师提供一个位置参考,可以让工程师能够快速的找到元件在PCB上的位置。
电子设计开发平台PADS2Allegro切换方案推荐设计平台:Cadence Allegro电子产品设计开发平台推荐产品类型:原理图设计+ 原理图功能仿真+高速PCB设计平台切换前提:见1.1详细说明电子设计平台切换方案概要1.1 设计平台切换方案软件要求软件要求:PADS Logic原理图工具DxDesigner原理图工具PADS Layout布局布线工具Cadence Design Entry CIS原理图工具Cadence Allegro PCB Designer布局布线工具1.2 原理图切换方案PADS Logic原理图可以通过EDIF格式的原理图数据,直接导入Cadence Design Entry CIS 原理图环境中,可以实现PADS Logic原理图向Design Entry CIS原理图的数据切换,其具体过程如下所述。
(1)PADS Logic环境中设计原理图(2)DxDesigner环境中导入PADS Logic原理图数据执行File/Import/PADS命令,在Symbol &Schematic Translators: PADS Logic to DxDesignerNetlist对话框中,设置转换参数即可将PADS Logic设计的原理图*.sch文件,转换为DxDesigner原理图。
其中转换窗口中的设置如下:Schematics——设置需要转换的PADS Logic原理图设计;Libraries——设置器件库;Mapping——设置PADS Logic环境中符号属性与DxDesigner环境中符号属性的对应关系。
(3)DxDesigner原理图导出EDIF原理图在DxDesigner环境中执行File/Export/EDIF Schematic命令,将DxDesigner原理图导出EDIF格式原理图数据*.eds。
(4)Design Entry CIS环境导入EDIF原理图在Cadence Design Entry CIS原理图设计环境中,执行File/Import Design命令,在弹出的Import Design窗口中,选择需要切换的原理图数据*.eds文件,如下图所示:其中Import Design转换设置如下:Open——需要转换的原理图EDIF格式数据;Save As——指定EDIF原理图切换至Design Entry CIS原理图的设置;Configuration——选择原理图切换进程的配置文件EDI2CAP.CFG。
allegro模块复用的详细步骤哎呀,咱今儿个就来唠唠这个 allegro 模块复用的详细步骤哈!这可真是个有意思的事儿呢!你想想看,就好像搭积木一样,咱有了一些已经搭好的模块,现在要把它们巧妙地组合起来,变成一个更厉害的大玩意儿。
首先呢,你得清楚自己有哪些模块可以用,这就像是整理你的玩具箱,知道每个玩具都长啥样,有啥特点。
然后呢,你得仔细研究这些模块,搞明白它们的接口呀、功能呀这些关键的地方。
接下来,就可以开始动手啦!把那些合适的模块挑出来,就像挑出你最喜欢的积木块一样。
然后呢,把它们按照一定的规则拼接在一起。
这可不是随便拼拼就行的哟,得考虑好各种因素,比如说兼容性啦、稳定性啦。
在这个过程中,可别马虎大意呀!要像对待宝贝一样细心地处理每个模块。
比如说,有些模块可能需要一些小调整,就像给积木块修修边儿,让它们能更好地契合在一起。
然后呢,还得测试一下你拼好的这个东西能不能正常工作。
这就好比你搭好了一个积木城堡,得推一推,看看会不会倒。
如果有问题,那就得赶紧回去找原因,重新调整模块。
再然后呀,就是不断地优化和完善啦!让这个复用的模块组合变得越来越厉害,越来越好用。
就像给你的积木城堡加上各种装饰,让它变得更加漂亮和独特。
你说这是不是很有趣呢?通过这种模块复用的方式,咱能省好多事儿呢,不用每次都从头开始搭建。
这就像你有了一套万能工具,啥时候想用就拿出来用,多方便呀!总之呢,allegro 模块复用可不是一件简单的事儿,但只要你认真对待,一步一步来,肯定能把它做好。
加油吧,小伙伴们!让我们一起在这个神奇的技术世界里畅游,创造出更多精彩的东西来!。
allegro skill 干货1-制作焊接丝印图1.Allegro skill 提供了PCB editor 二次开发的可能,它可以使某些繁琐的操作自动化,简单化,例如,在某些情况下我们需要手工焊接时,需要对照原理图,丝印图一一去找器件,这样既浪费了很多时间,同时还导致手工焊接出错。
2.本文讲到方法是,通过写一个skill 脚本的方法,可以使电阻或者电容的值直接标注在相应器件的丝印上,这样可以非常直观的进行焊接。
类似下面这张图一样,是不是非常容易查找到对应的阻容进行焊接。
3.开始讲解实现的过程。
贴上一段代码。
首先注册一个函数,就是allegro加载skill脚本时的名称,脚本可以设置打开allegro时加载,也可以设置成手工加载,后面会详细说明。
下文中黄色高亮的事注释部分,commen Lisp中注释使用;开头。
;申请一个函数axlCmdRegister("AutoHandSilk",'AutoHandSilk);实现这个函数;定义函数为AutoHandSilk,与上文申请的函数名称一致defun(AutoHandSilk ();关闭所有class和subclassaxlVisibleDesign(nil);打开BOARD GEOMETRY/OUTLINE层等等,为后面选中做准备,这里为什么打开; DEVICE TYPE/ASSEMBLY_TOP层呢,是因为只有这个层会有阻容值得信息,例如这;样R_R0603_2.2KaxlVisibleLayer("BOARD GEOMETRY/OUTLINE" t);axlVisibleLayer("PIN/TOP" t)axlVisibleLayer("DEVICE TYPE/ASSEMBLY_TOP" t)axlVisibleLayer("PACKAGE GEOMETRY/PLACE_BOUND_TOP" t);过滤选中的关键字,这里过滤的是textaxlSetFindFilter(?enabled list("noall" "text")?onButtons list("noall" "text"));选中页面上以上显示层的text,这个和实际在allegro环境中框选一样axlAddSelectAll();将选中的text信息赋值给对象allall = axlGetSelSet();去除显示,相当于去除高亮axlClearSelSet();这里是打印一条logaxlMsgPut("DEVICE TYPE/Assy place started.");这里是skill语言也就是commen Lisp语言的for循环foreach(i all;将text值取出来赋值给变量texttext = i ->text;下面这句相当于split字符串的功能,就是把类似R_R0603_2.2K的字符串;中有用的信息2.2K取出来text_list = parseString(text,"_")text=car(last(text_list));去阻容丝印等的原点坐标,注意丝印的原点坐标不是字的正中心,是字底;部的中心xy = i ->xy;取当前丝印的旋转角度txt_rot = round(i ->rotation);将180度都统一用0度表示,90度的统一用270表示cond((txt_rot == 180, txt_rot = 0)(txt_rot == 90, txt_rot = 270));这里是对每个丝印进行具体处理了,下面就是把丝印放在什么位置呢,;这里的方法是取place_bound_top层的长方形算中心foreach(childid, i ->parent ->childrenwhen(childid ->layer == "PACKAGE GEOMETRY/PLACE_BOUND_TOP" || childid ->layer == "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM"sym_x = (xCoord(car(childid ->bBox)) + xCoord(cadr(childid ->bBox))) / 2.0sym_y = (yCoord(car(childid ->bBox)) + yCoord(cadr(childid ->bBox))) / 2.0));前面说过丝印的xy并不是字的正中心,所以这里算出偏移量并根据具体;情况加或者减halfT extHeight = axlGetParam(sprintf(nil, "paramTextBlock:%d", 1)) ->height / 2.0case(txt_rot( 0, sym_y = sym_y - halfT extHeight)( 90, sym_x = sym_x + halfT extHeight)(180, sym_y = sym_y + halfTextHeight)(270, sym_x = sym_x - halfTextHeight));这里的xy才是要把丝印最终放置的位置xy = list(sym_x, sym_y);定义要创建文字的属性,字体默认使用1号了,使用者可以根据实际情况修;改合适的字体,然后再使用此脚本textOrientation = make_axlT extOrientation( ?textBlock "1", ?rotation txt_rot, ?mirrored i ->isMirrored, ?justify "CENTER");下面是注释掉的语句,实现的是直接在assemble_top上创建丝印,并删除;掉旧的丝印,实际上就是相当于移动丝印。
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 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 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。