EDA365电子工程师网

标题: Skill中的继承结构,向高手请教 [打印本页]

作者: y175813652    时间: 2008-10-14 16:47
标题: Skill中的继承结构,向高手请教
Skill中的继承结构是什么 它的功能是什么 ?在什么情况下用它?


                                                
积分不够 ,高手 见亮! 回答好,我恳求版主给你加分 狠D!~
作者: cmos    时间: 2008-10-15 04:42
如果你2个月前问我,因为那个时候我刚看了2周的skill语言的help,也许我能回答的好些.我也不知道什么叫继承结构.但我会尝试回答下,真正的高手继续啊

1:首先下面语句让你选中的目标信息保存在cpaths这个变量里面,目标信息可能是text ,器件, line,cline,via,shape等等.所有的目标信息都有一个编号,然后这个编号下面就有不同分类.
假设你选中的是shape,那会有layer,net name,是否填充等.如果选中的是text,那么就会有text size,text height ,width,坐标等信息.
cpaths=axlGetSeleSet()


2: foreach 语句会遍历cpaths的中所有的信息.并这些信息暂时放在path变量里面.
path->net的意思就是 ,想看一下path 下面net 分类这个变量具体是什么值,顾名思义,通过这个语句获得你选中的cline线的net name,如果是null的话,就可能没net name的线,自然那个if语句就不执行了.

3:当选中的线有netname的时候,这个时候就得到这个线layout的具体信息,比如这根线的起点在哪里,终点在哪里,线宽多少等等. segment->startEnd估计就是这个线头的具体XY坐标

4:所以最后一个语句的意思应该是列表出这段线的分段线长.

这段程序的大致思路就是, 在用户界面操作选中带net name的属性的cline,然后找到每个节点作为start end,计算这一段长度,然后把cline的分段线长列表出来.

楼主可以把这段程序运行下,估计就知道了.不过我从来没跑过,不知道会碰到什么问题.
作者: y175813652    时间: 2008-10-15 12:03
标题: 回版主
首先谢谢版主
版主分析的很对,这段程序的大致思路就是, 在用户界面操作选中带net name的属性的cline,然后找到每个节点作为start end,计算这一段长度,然后把cline的分段线长列表出来.
我根据版主的分析,把程序重新调试了一遍得到结果如下:

                                                   
segments:  dbid:72873064 dbid:72873104 dbid:72873144 dbid:72872976            
                  dbid:72872936

cpaths:    dbid:72873016
box:         ((566.25 1350.25) (595.0 1350.25))
lx:            566.25
ly:           1350.25
rx:           595.0
ry:          1350.25
上面的数据是分析板中的一个"Cline"所得到的,首先在选择这个"Cline"时"cpaths"为   dbid:72873016,然后经过程序中的
                                         if( path->net then   
                                         segments = path->segments(这个就是传说中的继承结构 )
得到"segments"的数据为dbid:72873064     dbid:72873104     dbid:72873144     dbid:72872976     dbid:72872936
接着再由一个继承结构:
                                         foreach(segment segments
                                                box = segment->startEnd

就得到了"box"的数据:((566.25 1350.25) (595.0 1350.25))为"Cline"的一段线的端点坐标,问题就在这儿了:

这个数据是怎么转化到这儿的?调试也调不出来了 ,请教高手和版主 !~
                                 



作者: cjf    时间: 2008-10-15 13:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: y175813652    时间: 2008-10-15 14:50
标题: 终于理解了,不知对否
看了两位的解说,终于有点小明白了,以下是个人愚见:
      我现在对继承结构的理解是:打个比喻,相当于一个容器里的东西放到另一个容器里,但是在转移的时候,加了过滤器,只把你想要的东西放进去,比如上面的box = segment->startEnd是只把segment里每一个线段的端点坐标放进去,然后赋予box,其中startEnd相当于一个过滤器.不知我说的对否,请高手指点
      然后我又按照版主cif的把上面的
        lx = caar(box)                                                           lxy = car(box);lx = caar(box)
              ly = cadar(box)                             改成了           rxy = nth(1 box);rx = caadr(box)
              rx = caadr(box)                                                         
              ry = cadadr(box)
              pathlen = pathlen + sqrt( (lx-rx)**2+(ly-ry)**2 )             pathlen = pathlen + axlDistance(lxy rxy)
效果是好了 很多,精度也高了 ,真是受教了,谢谢了 cif
作者: dzyhym@126.com    时间: 2009-1-9 21:55
好贴,顶。谢谢!还不熟悉SKILL,学习中。。。
作者: ansonjimli    时间: 2010-10-2 16:54
不错哟,支持一下,嘿嘿。




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