EDA365电子工程师网

标题: 检查盲埋孔叠孔 [打印本页]

作者: wang66jin    时间: 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
               


作者: wang66jin    时间: 2016-4-1 14:15
程序有问题
作者: skill_rc    时间: 2016-4-15 16:26
看看
作者: evel    时间: 2016-4-17 22:59
Allegro 自身可以检查这种问题啊。看看 BB Via Separation 设置
作者: LX0105    时间: 2016-10-12 17:06
学习了!
作者: LX0105    时间: 2017-4-27 09:26
非常的好,谢谢分享
作者: bingshuihuo    时间: 2017-4-27 19:28
非常的好,谢谢分享
作者: zhuhj    时间: 2017-11-15 17:30
厉害了
作者: szhot    时间: 2017-11-16 20:21
可以有

作者: mentorkk    时间: 2017-11-17 02:06
程序有问题
作者: changjinling    时间: 2017-12-7 11:27
刚开始学,不太能看懂
作者: moca    时间: 2017-12-11 09:01
有問題嗎? 來去檢查看看一下 !! 謝囉




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