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

Skill中的继承结构,向高手请教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-10-14 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
skill中的继承结构是什么 它的功能是什么 ?在什么情况下用它?


                                                
积分不够 ,高手 见亮! 回答好,我恳求版主给你加分 狠D!~
  • TA的每日心情
    开心
    2023-5-11 15:04
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 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的分段线长列表出来.

    楼主可以把这段程序运行下,估计就知道了.不过我从来没跑过,不知道会碰到什么问题.

    评分

    参与人数 1贡献 +2 收起 理由
    y175813652 + 2

    查看全部评分

    该用户从未签到

    3#
     楼主| 发表于 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 该用户已被删除
    4#
    发表于 2008-10-15 13:31 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽

    该用户从未签到

    5#
     楼主| 发表于 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

    该用户从未签到

    6#
    发表于 2009-1-9 21:55 | 只看该作者
    好贴,顶。谢谢!还不熟悉SKILL,学习中。。。

    该用户从未签到

    7#
    发表于 2010-10-2 16:54 | 只看该作者
    不错哟,支持一下,嘿嘿。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-6 18:19 , Processed in 0.093750 second(s), 30 queries , Gzip On.

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

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

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