找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[求助]我需要统计所有Net不同线宽的总线长,应该用什么方式来储存这对数据

[复制链接]

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
跳转到指定楼层
1#
发表于 2015-11-3 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
目前获取到的List格式为
((width1 length1) (width2 length2)...(widthn lengthn))
然后根据widthn是否相同,将lengthn相加
这个需要怎么实现??
还有没有更好的方法来统计??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
2#
发表于 2015-11-3 13:08 | 只看该作者
以线宽为索引存到 table 中

点评

tmpList = sortcar(tmpList 'lessp) temp = list(0,0) foreach(tmp tmpList unless(car(tmp) == car(temp) TempList = append1(TempList temp) temp = list(0,0) ) temp = list(  详情 回复 发表于 2015-11-3 13:57
table应该怎么使用??这应该就是c语言中的指针吧? 在skill中不知道怎么使用  详情 回复 发表于 2015-11-3 13:37

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
3#
 楼主| 发表于 2015-11-3 13:37 | 只看该作者
betamelody 发表于 2015-11-3 13:08
以线宽为索引存到 table 中

table应该怎么使用??这应该就是c语言中的指针吧?
在skill中不知道怎么使用

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
4#
 楼主| 发表于 2015-11-3 13:57 | 只看该作者
本帖最后由 361553894 于 2015-11-3 14:30 编辑
betamelody 发表于 2015-11-3 13:08
以线宽为索引存到 table 中

TempList = nil
tmpList = sortcar(tmpList 'lessp)
temp = list(0,0)
foreach(tmp tmpList
    unless(car(tmp) == car(temp)
        TempList = append1(TempList temp)
        temp = list(0,0)
    )
    temp = list(car(tmp) cadr(temp) + cadr(tmp))
)
TempList = remove('(0,0) TempList)
这是我目前的做法,tmpList存储的是((width1 length1) (width2 length2)...(widthn lengthn))

发现问题了。。。最后一组不会添加到列表内。。。


7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
5#
发表于 2015-11-3 17:32 | 只看该作者
lw = makeTable("lw" 0)
lw[linedbid->width] = linelen+lw[linedbid->width]

点评

刚试了下,linedbid->width允许是小数,table好神奇啊。。。  详情 回复 发表于 2015-11-4 10:13
可我的linewidth可能是浮点数,不是interger,[array]不是要求array是整数么?  详情 回复 发表于 2015-11-4 08:28

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
6#
 楼主| 发表于 2015-11-4 08:28 | 只看该作者
本帖最后由 361553894 于 2015-11-4 10:10 编辑
betamelody 发表于 2015-11-3 17:32
lw = makeTable("lw" 0)
lw[linedbid->width] = linelen+lw[linedbid->width]


可我的linewidth可能是浮点数,不是interger,array[index]不是要求index是整数么?

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
7#
 楼主| 发表于 2015-11-4 10:13 | 只看该作者
betamelody 发表于 2015-11-3 17:32
lw = makeTable("lw" 0)
lw[linedbid->width] = linelen+lw[linedbid->width]

刚试了下,linedbid->width允许是小数,table好神奇啊。。。

102

主题

377

帖子

1158

积分

四级会员(40)

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

积分
1158
8#
 楼主| 发表于 2015-11-4 10:38 | 只看该作者
本帖最后由 361553894 于 2015-11-4 10:47 编辑

目前用的两种方法,都是可行的
  1. TempList = nil
  2. tmpList = nil
  3. foreach(child Children
  4.     when(child->objType == "path"
  5.         segments = child->segments
  6.         foreach(seg segments
  7.             if(axlVersion('version) > 16 then
  8.                 tmpList = append1(tmpList list(seg->width axlDBGetLength(seg)))
  9.             else
  10.                 tmpList = append1(tmpList list(seg->width wlGetSegLength(seg)))
  11.             )
  12.         )
  13.     )
  14. )
  15. tmpList = sortcar(tmpList 'lessp)
  16. temp = list(0,0)
  17. foreach(tmp tmpList
  18.      unless(car(tmp) == car(temp)
  19.            TempList = append1(TempList temp)
  20.            temp = list(0,0)
  21.      )
  22.      temp = list(car(tmp) cadr(temp) + cadr(tmp))
  23. )
  24. TempList = append1(TempList temp)
  25. TempList = remove('(0,0) TempList)
复制代码



  1. lw = makeTable("lw" 0)
  2. foreach(child Children
  3.       when(child->objType == "path"
  4.             segments = child->segments
  5.             foreach(seg segments
  6.                  if(axlVersion('version) > 16 then
  7.                      lw[seg->width] = axlDBGetLength(seg) + lw[seg->width]
  8.                  else
  9.                      lw[seg->width] = wlGetSegLength(seg) + lw[seg->width]
  10.                  )
  11.             )
  12.       )
  13. )  
  14. TempList = tableToList(lw)
  15. TempList = sortcar(TempList 'lessp)  
复制代码

6

主题

224

帖子

584

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
584
9#
发表于 2016-1-5 18:09 | 只看该作者
支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-27 00:33 , Processed in 0.072662 second(s), 33 queries , Gzip On.

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

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

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