EDA365电子工程师网

标题: allegro.ini 与allegro.ilinit 有区别吗? [打印本页]

作者: zhanyying    时间: 2013-7-20 11:14
标题: allegro.ini 与allegro.ilinit 有区别吗?
如题,哪位大侠可以告诉我allegro.ini 与allegro.ilinit 有区别吗?谢了{:soso_e183:}
作者: zhanyying    时间: 2013-7-20 12:10
allegro.ini是一打开文件就会在pcbenv下产生一个配置文件,allegro.ilinit 是
skill的初始化文件,allegro装的是16.5,我新建了一个allegro.ilinit 文件,在里面加了这两句话setSkillPath(buildString(append1(getSkillPath() "E:/pcbenv")))
load("abc.il")
allegro就打不开了, 哪位可以告诉我为什么呢?
作者: hoo    时间: 2013-7-21 09:18
abc.il文件问题,里面直接执行了Allegro数据操作,这时候的Allegro还没有打开brd数据。
作者: zhanyying    时间: 2013-7-22 15:33
hoo 发表于 2013-7-21 09:18
abc.il文件问题,里面直接执行了Allegro数据操作,这时候的Allegro还没有打开brd数据。

那我要怎样设置allegro启动就自动执行“abc.il"这个skill,不是在allegro.ilinit设置的吗?
作者: betamelody    时间: 2013-7-22 15:37
https://www.eda365.com/thread-29437-1-1.html
置顶帖传送门
作者: zhanyying    时间: 2013-7-22 16:16
betamelody 发表于 2013-7-22 15:37
https://www.eda365.com/thread-29437-1-1.html
置顶帖传送门

呵呵,我就是参照这个文件写到啊,为什么有问题呢?{:soso_e132:} {:soso_e132:} {:soso_e132:}
作者: betamelody    时间: 2013-7-22 16:21
load("abc.il")
去掉这一句可以打开么
如果可以,把这个skill的内容贴出来看一下
作者: zhanyying    时间: 2013-7-22 19:53
betamelody 发表于 2013-7-22 16:21
load("abc.il")
去掉这一句可以打开么
如果可以,把这个skill的内容贴出来看一下

把load这句去掉allegro打开是没有问题的,但是我的skill在打开的board file里执行也没有问题的,或是在script里面调用这个skill也是没有问题的。
内容原文如下:
saveVis=axlVisibleGet()
axlVisibleDesign(nil)
axlVisibleLayer("pin" t)
axlVisibleUpdate(t)
axlClearSelSet()
axlSetFindFilter(?enabled list( "noall" "symbols") ?onButtons list( "noall" "symbols"))
axlAddSelectAll()
myprops = axlDBGetProperties(car(axlGetSelSet()) '("user" "allegro"))
unless(myprops=="LOCKED"
           axlDBAddProp(axlGetSelSet() list("LOCKED"))
    )
axlVisibleSet(saveVis)
axlVisibleUpdate(t)

作者: betamelody    时间: 2013-7-23 09:15
错误原因和3楼hoo说的一样,在还没有载入任何brd的时候就已经开始调用了数据库操作,所以出错
而且就算是把abc.il放在了加载brd之后的动作之后运行,也不会在打开新的brd时再次运行abc.il,只能是在打开allegro时运行一次

LZ的真正需求是否是在打开每个设计文件之后,都运行一次abc.il?

作者: betamelody    时间: 2013-7-23 09:57
allegro版本高于15.7,而且editor中包括skilDev权限的话,可以解决这个问题
  1. procedure(ADD_Myprops( t_open)
  2.   prog((saveVis myprops brd existing)
  3.     brd = car(t_open)
  4.           existing = cadr(t_open)
  5.           if( existing then
  6.             println("New design has been opened,add my props.")
  7.       saveVis=axlVisibleGet()
  8.       axlVisibleDesign(nil)
  9.       axlVisibleLayer("pin" t)
  10.       axlVisibleUpdate(t)
  11.       axlClearSelSet()
  12.       axlSetFindFilter(?enabled list( "noall" "symbols") ?onButtons list( "noall" "symbols"))
  13.       axlAddSelectAll()
  14.       myprops = axlDBGetProperties(car(axlGetSelSet()) '("user" "allegro"))
  15.       unless(myprops=="LOCKED"
  16.         axlDBAddProp(axlGetSelSet() list("LOCKED"))
  17.       )
  18.       axlVisibleSet(saveVis)
  19.       axlVisibleUpdate(t)
  20.     )
  21.   )
  22. )
  23. if(axlVersion('version)>15.7 then
  24.   axlTriggerSet('open 'ADD_Myprops)
  25. )
复制代码
以上代码替换掉abc.il,allegro.ilinit内容不变
作者: zhanyying    时间: 2013-7-23 11:31
betamelody 发表于 2013-7-23 09:57
allegro版本高于15.7,而且editor中包括skilDev权限的话,可以解决这个问题以上代码替换掉abc.il,allegro.ili ...

是的,是在打开每个设计文件之后,都运行一次abc.il。
版主好厉害啊,{:soso_e179:} {:soso_e179:} {:soso_e179:} 我试了一下,是没问题的。
我可以厚着脸皮问你一下加进去语句的大概意思,为什么要加进去?虽然还查了这个函数axlTriggerSet,还是不太理解{:soso_e132:} {:soso_e132:} {:soso_e132:}
作者: betamelody    时间: 2013-7-23 17:47
增加一个触发器,每次打开已存在的database之后都运行一次ADD_Myprops函数
作者: zhanyying    时间: 2013-7-24 10:36
betamelody 发表于 2013-7-23 17:47
增加一个触发器,每次打开已存在的database之后都运行一次ADD_Myprops函数

{:soso_e100:}谢了
作者: lxiapeng    时间: 2013-8-9 16:31
tongxue ,qingjiao




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