找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

检查盲埋孔叠孔

  [复制链接]

18

主题

97

帖子

866

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
866
跳转到指定楼层
1#
发表于 2016-4-1 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
针对ALLEGRO一些版本的BUG,盲埋孔叠孔不报错,借用论坛里的一个程序改的,水平有限,瞎改。

axlCmdRegister("BBVIATOBBVIA" `BBVIATOBBVIA)        
procedure( BBVIATOBBVIA()
         let(
                    (vias
                            lx
                            ly
                            ux
                            uy
                            VIATOVIAS
                            logfile
                            rep_file
                            section_list
                    )


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            section_list = axlGetXSection()       
                        num = 0
                        vialayer_name_list = nil
                          foreach(x section_list
                     everylayer_name = nth(0 x)
                     everylayer_type = nth(1 x)  ;conductor plane
                                         
                             if(  everylayer_type == "PLANE" || everylayer_type == "CONDUCTOR"  then       
                                              num = num + 1
                                          vialayer_name = strcat( "VIA CLASS/" everylayer_name)
                                                  vialayer_name_list = cons(vialayer_name vialayer_name_list)
                                                  ;axlVisibleLayer( vialayer_name t)
                          ;axlVisibleUpdate(t)
                                        )
                            )                       

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            axlClearSelSet()
            axlVisibleDesign(nil)
            axlMsgPut("%d " num)
                        VIATOVIAS=nil
            for(n 0 num-1
                        axlVisibleDesign(nil)
                        axlMsgPut("%d " n)
            if( (n+1) < num then
                        vialayer_namex = nth(n vialayer_name_list)
                        axlVisibleLayer( vialayer_namex t)
                        vialayer_namex = nth(n+1 vialayer_name_list)
                        axlVisibleLayer( vialayer_namex t)
            axlVisibleUpdate(t)

            axlSetFindFilter( ?enabled (list "vias" ) ?onButtons (list "vias"))
            vias = axlGetSelSet(axlAddSelectAll())

          foreach( via  vias
                        axlClearSelSet()
                        lx=car(via->xy)-4
                        ly=cadr(via->xy)-4
                        ux=car(via->xy)+4
                        uy=cadr(via->xy)+4
                 axlAddSelectBox(list(lx:ly ux:uy))
                 n = axlGetSelSetCount()
                 if( axlGetSelSetCount()>1  then
                          VIATOVIAS=cons(via VIATOVIAS)
                          ); end if
                        );end foreach                       
                                                               
                        );if
                        );for
               
                foreach(vialayer_name vialayer_name_list
                         axlVisibleLayer( vialayer_name t)
                 axlVisibleUpdate(t)       
                       )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                       
                     logfile="./VIA_TO_VIA.txt"
                     rep_file=outfile(logfile)
              fprintf(rep_file "\t Stack Vias Report\n\n Padstack Name\t\tLocation\n\n")
                          
                          
         foreach( via VIATOVIAS
                 
              fprintf(rep_file "%L\t\t%L\n" via->name , via->xy )
                                                                 
                   if( length(VIATOVIAS)==0 then
                    axlMsgPut("No VIA TO VIA .")
                    else
                    axlMsgPut("%d VIA TO VIA exist."  length(VIATOVIAS))
                      );end if
                                );end foreach
                  


                 axlClearSelSet()
           close(rep_file)
           axlUIViewFileCreate(logfile " Vias Log" t)
          );end let
        );end defun
               

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持!1 反对!反对!

18

主题

97

帖子

866

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
866
2#
 楼主| 发表于 2016-4-1 14:15 | 只看该作者
程序有问题

16

主题

111

帖子

325

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
325
3#
发表于 2016-4-15 16:26 | 只看该作者
看看

11

主题

104

帖子

2601

积分

四级会员(40)

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

积分
2601
4#
发表于 2016-4-17 22:59 | 只看该作者
Allegro 自身可以检查这种问题啊。看看 BB Via Separation 设置
互相学习,彼此保留一种敬畏吧。

20

主题

435

帖子

3661

积分

五级会员(50)

Rank: 5

积分
3661
5#
发表于 2016-10-12 17:06 | 只看该作者
学习了!
再烦也别忘微笑,再急也要注意语调!

20

主题

435

帖子

3661

积分

五级会员(50)

Rank: 5

积分
3661
6#
发表于 2017-4-27 09:26 | 只看该作者
非常的好,谢谢分享
再烦也别忘微笑,再急也要注意语调!

29

主题

2646

帖子

2805

积分

四级会员(40)

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

积分
2805
7#
发表于 2017-4-27 19:28 | 只看该作者
非常的好,谢谢分享

1

主题

44

帖子

1063

积分

认证会员B类

Rank: 25

积分
1063
8#
发表于 2017-11-15 17:30 | 只看该作者
厉害了

53

主题

647

帖子

1460

积分

四级会员(40)

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

积分
1460
9#
发表于 2017-11-16 20:21 | 只看该作者
可以有

10

主题

379

帖子

4169

积分

五级会员(50)

Rank: 5

积分
4169
10#
发表于 2017-11-17 02:06 | 只看该作者
程序有问题

1

主题

106

帖子

197

积分

二级会员(20)

Rank: 2Rank: 2

积分
197
11#
发表于 2017-12-7 11:27 | 只看该作者
刚开始学,不太能看懂

0

主题

87

帖子

98

积分

二级会员(20)

Rank: 2Rank: 2

积分
98
12#
发表于 2017-12-11 09:01 | 只看该作者
有問題嗎? 來去檢查看看一下 !! 謝囉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-22 16:51 , Processed in 0.066033 second(s), 34 queries , Gzip On.

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

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

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