Skill加载和管理(设置相对路径与动态菜单)

本文作者原创,因资料来源于EDA365,先发于EDA365,在本网站作一备份。

论坛中大神很多,但小白也不想花时间学怎么开发skill,只要可以加载使用就好了。群中的内容操作多数都可直接拿来使,可当下了一堆skill,如何管理这就是一个问题。
作为强迫症患者,不想把所有的skill文件一股脑全pcbenv文件夹下,这样文件太多太乱,还没有分类。又不想为每一个加载skill时,设置专门的路径,因而必须设定好专用的路径。不想修改candence安装文件中的allegro.mem文件,因为每次这样修改比较麻烦,还要找位置。
因而本文操作分为三块:
1.设置skill文件的加载路径(采用相对路径)。
2.设置菜单(动态菜单,以skill语言加载)。
3.加载skill文件。

测试用的skill是来自论坛的http://www.eda365.com/thread-100913-1-1.html


1.必须要对HOME变量有概念,这个全局变量是cadence加载一些文件的一个关键路径,一般安装时自动会创建。我们的全局pcbenv放在这个路径下,运行过程中如果需要调用这个文件路径以 "~/" 表示即可,这个就是HOME变量的路径。
    它的查阅方法,可右键单击计算机,在菜单中选  属性/高级系统设置/高级/环境变量 中查询到HOME值,这方面网上资料很多。
 
    我的HOME文件路径是 C:\Users\(User)\AppData\Roaming\SPB_Data ,在cadence中等价于 ~\
    为了方便管理,我在该文件夹下建立了skill文件夹,然后在里面建立不同的子文件夹,分类放skill。我在其中建立了文件夹UniNavSkill
 
    这里需要介绍一下skill中用到的几个文件,他们位于pcbenv下面。allegro.ilinit,这个文件可以自行用记事本创立,然后另存就可以了,注意不要和allegro.ini搞混了,我一开始就搞混了,总是弄不成。
        另一些是以.il为扩展名的文件,是我们的skill文件,我们需要在allegro.ilinit中加载它,这些文件放置在skill文件夹下对应的分类中。
 
采取这种分类方式,以后我们在其它系统上安装就简便了,只要把skill文件夹复制到HOME路径下,把allegro.ilinit文件复制到HOME\pcbenv\路径下,其它什么都不用做了。如果要合并,自己编辑allegro.ilinit文件就可以了。我们不需要考虑安装的绝对地址是什么。

2. 其次,我们需要设置目录,目录的设置我参考了很多文章,但是多数是用修改allegro.mem的方法,很麻烦。动态的方法有,但是不太好找。我们要做的是编写一个skill文件,在其中设置目录,然后我们加载就好了。因为设置了相对路径后,我们需要保证我们命名的skill不能重命,所以要为不同分类的目录取一个不同的名字。
这里我的取名是menu_UniNavSkill.il用记事本编辑它。
其中的原码如下:
defun(loadUniNavMenu (t_menuName)    ; loadUniNavMenu是函数名,建议取独一无二的名字。
        SKILLToolsMenu = '(
                (popup "UniNav")    ;这时是主菜单的名字"UniNav"
                        ("quick_view","quick_view")    ;前面一个"quick_view"是下一级子菜单名,后一个"quick_view"是我们调用skill所用的指令。以下相同不赘述
                        ("conv","conv")
                        ("ch_ref","ch_ref")
                        ("dumplib","dumplib")
                        ("scalpel","scalpel")
                        ("align_symbol","xasym")
                        ("cline2shape","c2s")
                        ("mc_ro_text","mc_ref")
                        ("split_shape","split_shape")        
                        
                        (separator)    ;这里是分割线
                        (popup "Change")  ;需要创建下一级子菜单Change
                                ("replace_via","replace_via")  ;在Change下创建下一级菜单
                                ("change_net_onvias","change_net_onvias")
                                ("change_lw","clw")        
                        (end)  ;返回上一级菜单,每进一级菜单,要返回上一级都要有(end)
                        
                        (popup "Check")
                                ("check_dir","check_dir")
                                ("orphannet","orphannet")
                                ("ch_text_overlap","ch_text_overlap")
                                
                                ("check_line90","line90")
                        (end)
                (end)  ;返回根菜单
        )
        let( (palMenu)
                palMenu = axlUIMenuFind(nil -1)
                axlUIMenuInsert(palMenu SKILLToolsMenu)  
        )
)
axlTriggerSet('menu 'loadUniNavMenu)  ;这里 loadUniNavMenu需要和上边函数名相同。


;是用来作注释的,这段代码我直接测试过,绝对可用。显示效果如下
 

3. 加载skill文件。
这里全部是写在allegro.ilinit文件的。原码如下:
;Uni skill
setSkillPath(append(getSkillPath() '("~/skill/UniNavSkill")))

load("menu_UniNavSkill.il")
load("ch_ref.il" "")
load("ch_text_overlap.il" "")
load("change_net_onvias.il" "")
load("check_dir.il" "")
load("conv.il" "")
load("dumplib.il" "deargds")
load("orphannet.il" "")
load("quick_view.il" "")
load("x_mc_ro_text.il" "www.eda365.com")
load("replace_via.il" "")
load("scalpel.il" "")
load("x_align_symbol.il" "deargds")
load("x_cline2shape.il" "www.eda365.com")
load("x_split_shape.il" "deargds")
load("fform.il" "")
load("x_check_line90.il" "www.eda365.com")
load("x_change_lw.il" "www.eda365.com")
;UniNav_END


为了区分是哪一组skill,所以前后用注释框住。
第一行是为了加载相对地址,我目前试过只有这个方式好使。网上给的多数方法是setSkillPath(buildString(append1(getSkillPath() "D:/skill")))。但这个方法,我试过,用绝对路径可用,但是相对路径总是报错,我查了半天的资料才发现找到这个加载方法。我们要用'()把路径包上,转换成一个串,然后才能用append函数(不是append1)。将相对路径认为skillpath后,加载sill文件就不需要输入路径了,直接用文件名就可以了。就如上文例子那样。
这里要注意,把菜单加载的skill  menu_UniNavSkill.il要加进去,不然是不会有菜单的。

完成了。本贴给新入门的同行看,高手请指正。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本文是通过更新allegro.men和allegro.ilinit文件实现Cadence菜单的扩展,更新完成后将会在Cadence的菜单栏中增加一个UniNav的菜单。UniNav菜单中可以随时添加我们需要使用的skill功能,通过鼠标操作就可以实现skill调用,不用再在命令栏中输入load(”**.il”)。 一、如何给Cadence增加一个UniNav下拉菜单 1、将skill文件夹放置在D盘的根目录下,需加载的skill路径为D:\skill\**.il 2、将skill文件夹中的allegro.men文件复制到cadence的安装目录下,如C:\Cadence\SPB_16.5\ share\pcb \text\cuimenus,替换已有的allegro.men。 3、将skill文件夹中的allegro.ilinit文件复制到C:\SPB_Data\pcbenv目录下; 4、重新运行Cadence即可; skill文件夹中已经含16个常用的skill文件。在使用skill命令前,必须保存PCB文件,以免出现Bug导致skill指令无法撤销。 二、如何给UniNav的下拉菜单增加子菜单即增加skill程序 1、将需要增加的skill程序复制到D:\skill下; 2、在C:\SPB_Data\pcbenv目录下的allegro.ilinit文件中增加一行 load("D:/skill/新增skill名称" "skill的密码") 3、记事本打开skill文件查找skill调用指令,搜索axlCmdRegister指令,如axlCmdRegister("replace_via" `replace_via)中replace_via为skill调用指令; 4、在allegro.men的程度中增加一行,如下所示: POPUP "&UniNav" BEGIN MENUITEM "子菜单名称","skill调用命令" END 5、打开Cadence软件运行即可。 三、skill简介 1、quick_view quick_view目前有五个选项TOP_BOT_SILK、TOP_SILK、TOP_ASSEMBLY、BOT_SILK、BOT_ASSEMBLY。TOP_BOT_SILK可以同时显示正反面的 丝印和PIN,便于布局调整;TOP_SILK用于正面的丝印调整;TOP_ASSEMBLY用于正面的装配图调整;BOT_SILK用于背面的丝印调整;BOT_ASSEMBLY用于背面的装配图调整,如下图所示。 2、ch_ref ch_ref将丝印层位号移至器件中心的skill文件。 3、ch_ref_assembly ch_ref将装配层的Value值及DevType移至器件中心的skill。 4、change_net_onvias change_net_onvias改变选中Via的网络,如图所示。 5、replace_via replace_via用选择的焊盘替换选中的Via,如图所示。 6、orphannet orphannet用于检查只连接了一个PIN的net,结果以Report的形式输出,如图所示: 7、scalpel scalpel用于批量截断走线,如图所示: 8、dumplib dumplib用于输出单个器件的封装,可以选择焊盘、器件封装、机械封装三种,如图所示: 9、ch_text_overlap ch_text_overlap可以检查表底层丝印Text与PIN,Text与Testpoint,Text与Text以及器件位号与器件是否有重叠,如下图所示: 10、conv conv是简单的mil和mm间的转换工具,如下图所示: 11、x_mc_ro_text x_mc_ro_text含两个两个功能: a、 复位所选零件的REFDES到零件中心,括ref des/silkscreen,ref des/assembly两个层面的Refdes,对应命令为mc_ref; b、 旋转所选位置的方向,对应命令为:ro_text。 12、check_dir check_dir可用于检查丝印的方向是否正确,正面为字母在下方或左方,反面为字母在下方或右方,如图所示,方向不正确的器件会被高亮。 13、x_align_symbol x_align_symbol可用于器件的对齐,有六种对齐方式选择,水平方向左对齐、右对齐、中间对齐;垂直方向上对齐、下对齐、中间对齐。加载x_align_symbol.il后,执行xasym命令,直接选择需要对齐的器件后,选择对齐方式即可。此命令支持Temp Group功能。 14、x_cline2shape x_cline2shape可将PCB中的Cline和Line转换成Shape。在PCB中画任意宽度的Cline或Line,如下图所示: 执行c2s命令,选中该Cline或Line,右键Done后如下图所示: 16、x_split_shape x_split_shape命令可以将一个Shape分成两个Shape。首先在Shape上画一条线穿过Shape,如下图所示。 执行split_shape命令,选择该Shape,右键Done后如下图所示。 17、x_change_lw x_change_lw命令可以检查每层每个网络的线宽,可以设定检查的层面和检查线宽的宽度,将小于指令宽度的线更改到如下图所示: 18、x_check_line90 x_check_line90命令可以检查90度走线的线段,将该线段高亮,如下图所示:
### 回答1: allegro是一款流行的PCB设计软件,而EDA365.skill2.5是allegro的一个插件。该插件能够帮助用户设置快速开关层,使用户能够更加有效地进行PCB设计。 在使用EDA365.skill2.5设置快速开关层时,需要先在allegro软件中选择“View”菜单下的“Design Locking”选项,然后选择“Disable Design Locking”以解除设计锁定。接着,在“Setup”菜单下选择“Skill Chooser”,并在弹出的对话框中选择EDA365.skill2.5插件。 在插件的设置界面中,首先需要设置快速开关层的数量和名称。在设置名称时,注意要按照allegro软件中已有的层名称进行设置,以确保层的使用正确。然后,在“Routing Layers”选项卡中,设置快速开关层与其他设计层之间的优先级,以确保设计能够正常进行。 最后,在设置完快速开关层后,需要保存设置并退出插件。然后可以根据需要在allegro软件中进行PCB设计,通过使用快速开关层,可以有效地提高设计效率和调试速度。 总之,使用EDA365.skill2.5插件设置快速开关层可以使用户更加高效地进行PCB设计,同时也能够减少调试时间和设计错误。 ### 回答2: allegro插件EDA365.skill2.5是一款非常实用的EDA工具,它支持快速的PCB设计和生产布局。在使用此插件时,我们经常需要在PCB布局的过程中随时切换不同的工作层,以便更好地完成设计。为此,我们可以使用它提供的一个重要的功能:快速开关层。 在EDA365.skill2.5中,要设置快速开关层的方法非常简单,只需要点击菜单栏中的“选项”,然后选择“层与诱导器”。这将打开“层与诱导器管理器”窗口,其中含了所有PCB设计中可能用到的层。 要设置“快速开关层”,我们需要点击该窗口底部的“快速层”选项卡。然后,我们可以选择和编辑需要添加到快速层列表中的层。在添加层的同时,我们可以通过设置层的属性,如颜色、透明度和是否可见等,来更好地适应我们的设计需求。 一旦我们将所需的层添加到快速层列表中,我们就可以轻松地在PCB布局过程中快速切换它们。只需单击快速层列表中的标签,我们就可以直接切换到该层,在PCB布局中进行必要的更改。通过这个简单的设置,我们可以极大地提高我们的设计效率,并迅速完成PCB布局过程。 ### 回答3: Allegro是一种EDA软件,可用于设计和制造电子产品。Allegro中的插件eda365.skill2.5的一个设置是快速开关层。打开此设置可以方便地将当前层切换为特定的层。所以,如果您想在PCB上添加或编辑一些元素,可以通过使用快速开关层设置快速地在必要的层之间进行切换。 对于想要使用快速开关层的设计人员,应该首先打开Allegro设计软件,然后从菜单栏中选择“Option->Skill->run”。然后输入“switch-to-layer”命令来打开快速开关层设置。您可以为希望快速切换的每个层设置一个键盘快捷键,当需要切换至该特定层时,只需按下相应的快捷键即可快速切换到该层。 通过使用Allegro中的这种设置,设计人员可以更高效地操作,加快电路板设计和制造的速度。它还可以提高设计的准确性和可靠性,因为它使用户可以快速轻松地切换到所需层,确保设计完整且不遗漏任何重要细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值