找回密码
 注册
关于网站域名变更的通知
查看: 2302|回复: 8
打印 上一主题 下一主题

用axlShell调用一个Script后,所以铜皮的dBid都removed,是怎么回事儿啊?(已解决)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-6-2 21:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 CAD_SI 于 2010-6-2 23:11 编辑

如题,哪位大侠指点一下,谢谢!

调用 Script 的代码如下:

sScriptFile = "C:/cadence/SPB_15.7/HOME/pcbenv/xx.scr"
axlShell(
      sprintf( nil
          "replay %s"
          sScriptFile
      );end fprintf
);end axlShell


debug时打印的信息:
(dbid:removed dbid:removed dbid:removed)

该用户从未签到

2#
发表于 2015-6-10 14:22 | 只看该作者
本帖最后由 scc_yangy 于 2015-6-10 14:23 编辑

请问是怎么解决的,我也遇到了类似的问题,能不能帮忙解答一下啊,不甚感激,代码如下,问题是调试的时候所有shape的ID都是removed:
  1. axlVisibleDesign(nil)
  2. axlVisibleLayer( "Etch/TOP" t )
  3. axlSetFindFilter(?enabled '(noall shapes) ?onButtons '(noall shapes))
  4. axlClearSelSet()       
  5. all_shapes = axlGetSelSet(axlAddSelectAll())
复制代码


点评

这部分代码没有问题,可能是其它地方的原因  详情 回复 发表于 2015-6-13 08:43

该用户从未签到

3#
发表于 2015-6-13 08:43 | 只看该作者
scc_yangy 发表于 2015-6-10 14:22
请问是怎么解决的,我也遇到了类似的问题,能不能帮忙解答一下啊,不甚感激,代码如下,问题是调试的时候所 ...

这部分代码没有问题,可能是其它地方的原因

该用户从未签到

4#
发表于 2015-6-13 10:20 | 只看该作者
dbid只是临时的存在,如果获取的dbid没有立即使用而是中间进行了 ‘用户操作’ (运行axlDBxxxx函数或者script也是一种模拟用户操作),这些dbid就会失效

点评

我又碰到了这样的问题,这次是希望dbid的属性更新,但是没有,很想知道怎么解决,求指点,下面是部分代码: lRefdes = list() compidlist = axlDBGetDesign()->components foreach(comp compidlist lRefdes = con  详情 回复 发表于 2017-1-20 10:39
在cadence的官方论坛里也看到了这样的问题,应该就是这个原因,但是这样的话就有点不方便了,比如我要先存储选中shape的dbid,然后再选中shape上vias的dbid,这时候vias的dbid就可以记录,而shape的dbid就显示为remo  详情 回复 发表于 2015-6-16 20:21

该用户从未签到

5#
发表于 2015-6-16 20:21 | 只看该作者
betamelody 发表于 2015-6-13 10:20
dbid只是临时的存在,如果获取的dbid没有立即使用而是中间进行了 ‘用户操作’ (运行axlDBxxxx函数或者scr ...

在cadence的官方论坛里也看到了这样的问题,应该就是这个原因,但是这样的话就有点不方便了,比如我要先存储选中shape的dbid,然后再选中shape上vias的dbid,这时候vias的dbid就可以记录,而shape的dbid就显示为removed,但是程序在整体运行的时候是可以的,在分步调试的时候不行。

该用户从未签到

6#
发表于 2017-1-20 10:39 | 只看该作者
betamelody 发表于 2015-6-13 10:20
dbid只是临时的存在,如果获取的dbid没有立即使用而是中间进行了 ‘用户操作’ (运行axlDBxxxx函数或者scr ...

我又碰到了这样的问题,这次是希望dbid的属性更新,但是没有,很想知道怎么解决,求指点,下面是部分代码:
lRefdes = list()
compidlist = axlDBGetDesign()->components
foreach(comp compidlist lRefdes = cons(comp->name lRefdes))     ;获取所有器件位号,假设得到结果lRefdes = ("U3" "C2" "U1")
axlRenameRefdes("C2" "U2")   ;把C2的位号修改为U2,返回结果为t,丝印上C2也自动变成U2
;循环上面的操作,得到新的器件位号列表
lRefdes = list()
compidlist = axlDBGetDesign()->components
foreach(comp compidlist lRefdes = cons(comp->name lRefdes))

;此时得到的lRefdes = ("U3" "C2" "U1") ,相当于重新获取位号列表时,位号没有变化,如果再执行走线,走线结束,然后再通过上述代码获取位号列表,就可以得到
新的列表lRefdes = ("U3" "U2" "U1")
我试过中间加一句更新DRC,然后获取新的位号列表,也没有用。请问如何在程序运行的时候就让它更新?

该用户从未签到

7#
发表于 2017-1-20 10:49 | 只看该作者
本帖最后由 scc_yangy 于 2017-1-20 10:51 编辑

我现在暂行的方法是在获取新的位号列表之前,加以下两句,以进行版主提示的“用户操作”:
axlShell("add connect")
axlShell("done")
但总感觉这样的解决办法怪怪的......

该用户从未签到

8#
发表于 2017-1-20 13:11 | 只看该作者
axlDBRefreshld 这个有用吗

该用户从未签到

9#
发表于 2017-6-9 08:44 | 只看该作者
学习中,谢谢。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-13 02:43 , Processed in 0.078125 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表