找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1448|回复: 8
打印 上一主题 下一主题

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

[复制链接]

7

主题

194

帖子

1562

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1562
跳转到指定楼层
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)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

23

主题

173

帖子

1599

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1599
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

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

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

这部分代码没有问题,可能是其它地方的原因
谁画出这天地 又画下我和你

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
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

23

主题

173

帖子

1599

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1599
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,但是程序在整体运行的时候是可以的,在分步调试的时候不行。

23

主题

173

帖子

1599

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1599
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,然后获取新的位号列表,也没有用。请问如何在程序运行的时候就让它更新?

23

主题

173

帖子

1599

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

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

3

主题

176

帖子

1573

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

7

主题

351

帖子

348

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-26 04:34 , Processed in 0.060445 second(s), 33 queries , Gzip On.

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

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

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