EDA365电子工程师网

标题: 如何修改下载下来的skill默认的执行命? [打印本页]

作者: longzhiming    时间: 2012-8-27 19:03
标题: 如何修改下载下来的skill默认的执行命?



首先我不会写skill,下载了高手做的skill, 有些执行命令就我本人而言觉得不是很好记,想把它修改掉, 如何修改? 用什么工具修改?应注意什么? 谢谢!
(就像如何自定义快捷键一样的那个意思){:soso_e112:}



作者: jekyllcao    时间: 2012-8-27 20:46
大部分贡献出来的Skill都是被编译过的,没法修改的。我个人的经验就是把这些Skill挂在菜单下,这时候就可以在菜单中命名为自己好记忆的名字。工具很多,例如:UltraEdit
作者: longzhiming    时间: 2012-8-27 20:58
jekyllcao 发表于 2012-8-27 20:46
大部分贡献出来的Skill都是被编译过的,没法修改的。我个人的经验就是把这些Skill挂在菜单下,这时候就可以 ...

我还不知道如何增加菜单,可否指教一下?{:soso_e156:}
作者: jekyllcao    时间: 2012-8-27 21:32
首先,把你目前手头上的Skill都放在一个文件夹内。例如 D:/skill
其次,在Allegro home路径下PCB env下找到allegro.ilinit 文件,打开并编辑该文件。添加一下代码:
setSkillPath(buildString(append1(getSkillPath() "D:/skill")));
load("D:/skill/align_sym.il");
load("D:/skill/drc walk.il");
....
.... 注意有设密码的要改为 load("D:/skill/xxx.il" "密码");
然后保存文件
再次,找到Allegro目前正在调用的allegro.menu 打开本编辑 添加一下代码
POPUP "&longzhiming "
BEGIN
MENUITEM "&Align Symbol", "align_sym"
MENUITEM "&DRC Walker", "drc walk"
………
……
END
注意,这段代码最好加载在原文件的最后一个END前面。
最后,保存菜单。关闭打开着的Allegro程式,重新启动Allegro就可以看到菜单栏多了一个longzhiming的菜单 。
作者: jekyllcao    时间: 2012-8-27 21:36
如果还有我讲的不清楚的,可以QQ:41910442 说是:Allegro skill
作者: jekyllcao    时间: 2012-8-27 21:40
"&Align Symbol"是下拉菜单内显示的名字,(可以取很容易让你明白SKILL做什么的名字)
"align_sym"加载的skill 函数的文件名,这个名字一定要和load("D:/skill/align_sym.il")里的这个align_sym.il相同。
作者: longzhiming    时间: 2012-8-27 22:56
jekyllcao 发表于 2012-8-27 21:40
"&Align Symbol"是下拉菜单内显示的名字,(可以取很容易让你明白SKILL做什么的名字)
"align_sym"加载的s ...

谢谢,明天在空调底下折腾折腾, 现在TMD太热了.{:soso_e109:}
作者: ginooolu    时间: 2012-8-28 13:22
如果是可以修改的skill(沒加密),可以用notepad等本文編輯軟體修改其中一行
axlCmdRegister("xxx" 'ooo)
其中xxx會看到原本指令名稱,修改成你想要的指令名稱,ooo不需要動他,他是呼叫下方的程式

如果是不能修改的skill(加密了),可以使用alias 將原本指令指派到自訂的名稱,
例如alias aaa bbb
其中aaa是你要的指令名稱,bbb是原skill的指令名稱。這樣aaa 或bbb都會是同一個功能
alias 可以加在%home%\pcbenv\env 檔中,就不需要每次開allegro都指派一次
作者: longzhiming    时间: 2012-8-28 13:26
ginooolu 发表于 2012-8-28 13:22
如果是可以修改的skill(沒加密),可以用notepad等本文編輯軟體修改其中一行
axlCmdRegister("xxx" 'ooo)
...

非常感谢, 看来只能用后者了,一般应该都加了密的
作者: longzhiming    时间: 2012-8-28 21:45
jekyllcao 发表于 2012-8-27 21:32
首先,把你目前手头上的Skill都放在一个文件夹内。例如 D:/skill
其次,在Allegro home路径下PCB env下找到 ...

allegro.menu 我表示搞不定, 在我电脑里根本没有allegro.menu ,整台电脑搜了. allegro home也没有,但我想应该就是C:\SPB_Data\pcbenv, 但是allegro.menu 没有,不知自己建行不行?
作者: jekyllcao    时间: 2012-8-28 21:54
longzhiming 发表于 2012-8-28 21:45
allegro.menu 我表示搞不定, 在我电脑里根本没有allegro.menu ,整台电脑搜了. allegro home也没有,但我想 ...

你可以在C:\Cadence\SPB_16.3\share\pcb\text\cuimenus下面找到系统自带的allegro.men,修改后放在pcbenv的文件夹下。
在env中把优先菜单设定在pcbenv资料夹里。
作者: longzhiming    时间: 2012-8-28 22:37
jekyllcao 发表于 2012-8-28 21:54
你可以在C:\Cadence\SPB_16.3\share\pcb\text\cuimenus下面找到系统自带的allegro.men,修改后放在pcbenv ...

菜单弄出来了,但几个命令都无效, 一定要setSkillPath(buildString(append1(getSkillPath() "D:/skill")));
这样吗? 默认C盘里的C:\SPB_Data\pcbenv下面就有allegro.ilinit文件,里面
这样不行吗? 如下
load( "C:\\SPB_Data\\pcbenv\\fcutshape.il")
load( "C:\\SPB_Data\\pcbenv\\DstCxi.il")
load( "C:\\SPB_Data\\pcbenv\\xgrid.il")
load( "C:\\SPB_Data\\pcbenv\\cot.il")
load( "C:\\SPB_Data\\pcbenv\\fform.il")
load( "C:\\SPB_Data\\pcbenv\\search.il")
load( "C:\\SPB_Data\\pcbenv\\x_add_pin_number.il")
作者: jekyllcao    时间: 2012-8-28 22:44
longzhiming 发表于 2012-8-28 22:37
菜单弄出来了,但几个命令都无效, 一定要setSkillPath(buildString(append1(getSkillPath() "D:/skill"))) ...

如果你直接把*.il放在pcbenv下面的话,不需要把绝对路径添加load命令中。
可以直接写作:load("fcutshape.il") 也不用设setSkillPath(buildString(append1(getSkillPath() "D:/skill"))) 。
作者: longzhiming    时间: 2012-8-28 22:59
jekyllcao 发表于 2012-8-28 22:44
如果你直接把*.il放在pcbenv下面的话,不需要把绝对路径添加load命令中。
可以直接写作:load("fcutshap ...

E- Command not found: search.il
E- Command not found: clinecut.il
E- Command not found: fcutshape.il
Command > {:soso_e115:}
作者: jekyllcao    时间: 2012-8-28 23:11
你的home路径是什么?或者你用这种方法看看,在command窗口中直接输入:
Command > skill 回车
Skill > load("d:/skill/search.il") 回车  如果返回值是 t 表示装载成功。
Skill > search
作者: ginooolu    时间: 2012-8-29 19:57
如果你之前已經有載入成功,不需要變更原來載入的方式及路徑。
只需要在allegro.men檔中新增
MENUITEM "ooo", "xxx" 即可
作者: longzhiming    时间: 2012-8-29 20:12
本帖最后由 longzhiming 于 2012-8-30 21:00 编辑

已全部自己搞OK,总结, 其一论坛上相关贴子要么是这里复制点那里复制点来拼成一贴发的,发的人其实也没怎么懂,其二, 有的贴讲的分明是错的! 只不过有些程序是指令和名是一样所以巧合罢了, 其三, 热心人爱莫能助, 有些人却太保守!





作者: ginooolu    时间: 2012-8-29 23:05
本帖最后由 ginooolu 于 2012-8-29 23:18 编辑

你誤會jekyllcao 的意思了,在allegro.men中,第二個雙引號是填入skill產生的指令(或你想要增加的指令)。
例如xgrid.il 產生的指令是xgird,只要增加
MENUITEM "x Grid", "xgrid"就可以了。
另外jekyllcao的範例中有看到MENUITEM "&Align Symbol", "align_sym",其中&A將"&"放在"A"前面,就會在菜單中讓A增加底線,打開這個菜單時,可以用快速鍵A來執行Align Symbol。
若要再增加一般使用時的快速鍵(例如Open = Ctrl+O),就用alias的方法加在env檔中,菜單就會自動加了。
S=shift, 例 SF1=shift + F1, C=Ctrl, 例 CF1= Ctrl + F1, A=Alt, 例 AF1=Alt +F1
可以先在Allegro中按你想組合鍵,如果他沒被指定,可以在下方commmand>中看到你按的結果

作者: longzhiming    时间: 2012-8-30 09:12
ginooolu 发表于 2012-8-29 23:05
你誤會jekyllcao 的意思了,在allegro.men中,第二個雙引號是填入skill產生的指令(或你想要增加的指令)。
...

谢谢,我再试试,不过你说的.il不应该要,这个昨晚也有其它高手告知了,但我改后仍不可以.可能还存在其它问题,今天我再在其它电脑试试




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2