vivienluo 发表于 2013-9-16 23:14:24

查找无位号器件的SKILL(开源)

功能:
1.该SKILL用于查找器件有无位号,并将无位号的器件打印到报表中。
2.会自动跳过本身就无位号的器件(比如定位孔等)。
3.可直接点击报表中的坐标,跳转到指定器件的位置。
4.自动高亮无位号的器件。



代码:/****************************************************/
/*               Title :find symbol no refdes                */
/*   Execute Command :find_symbol_no_refdes                */
/*            Author :Vivien Luo                */
/*       Creation Date :2013-09-16                */
/*                       Update :                                      */
/*            Web site :www.allegro-skill.com   */
/*             E-maial :admin@allegro-skill.com        */
/****************************************************/
axlCmdRegister("find_symbol_no_refdes" 'find_symbol_no_refdes)

defun(find_symbol_no_refdes ()
        let((curVisible symbols logfile sym txt norefdes)
        logifile = outfile("./find_symbol_no_refdes.log")
        fprintf(logifile "------------------------------------------\n")
        fprintf(logifile "Find symbol no refdes report                                \n")
        fprintf(logifile "   Author : Vivien Luo                                        \n")
        fprintf(logifile "   E-mail : admin@allegro-skill.com                \n")
        fprintf(logifile "Date&Time : %s                                                        \n" getCurrentTime())
        fprintf(logifile "------------------------------------------\n")
        fprintf(logifile "Refdes\t\t\tLocation\n")
        ;visible the layers
        axlVisibleLayer("PIN/TOP" t)
        axlVisibleLayer("PIN/BOTTOM" t)
        axlVisibleLayer("REF DES/SILKSCREEN_TOP" t)
        axlVisibleLayer("REF DES/SILKSCREEN_BOTTOM" t)
        axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
        axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" t)
        axlVisibleUpdate(t)
        symbols = axlDBGetDesign()->symbols
        foreach(sym symbols
                norefdes = t
                when(sym->refdes
                        foreach(txt axlDBGetAttachedText(sym)
                                when(txt->layer == "REF DES/SILKSCREEN_TOP" || txt->layer == "REF DES/SILKSCREEN_BOTTOM"
                                        norefdes = nil
                                )
                        )
                        when(norefdes
                                fprintf(logifile "%s\t\t\t(%P)\n" sym->refdes sym->xy)
                                axlHighlightObject(sym)
                        )
                )
        )
        close(logifile)
        axlUIViewFileCreate("./find_symbol_no_refdes.log" "Find Symbol No Refdes- www.allegro-skill.com" nil)
)
)

欢迎新手积极提出不明白的地方。。。。

wolf343105 发表于 2013-9-18 16:29:35

虽然用不到,但还是谢谢你,并祝你节日快乐.

vivienluo 发表于 2013-9-18 21:01:00

wolf343105 发表于 2013-9-18 16:29 static/image/common/back.gif
虽然用不到,但还是谢谢你,并祝你节日快乐.

嘿嘿,你也节日快乐哦

XYX365 发表于 2013-9-19 17:25:15

虽然用不到,但还是谢谢你

375259768 发表于 2013-9-22 13:33:24

不错,可以用到

andyyu1982 发表于 2013-10-6 19:46:11

不错,辛苦了

molinchz 发表于 2013-10-7 17:04:32


谢谢分享

遊樂天空 发表于 2013-11-22 16:34:26

load("find_no_refdes.il")这样对吗:)谢谢

vivienluo 发表于 2013-11-22 18:38:37

遊樂天空 发表于 2013-11-22 16:34 static/image/common/back.gif
load("find_no_refdes.il")这样对吗谢谢

是的,参考:
http://www.allegro-skill.com/thread-306-1-1.html
http://www.allegro-skill.com/thread-112-1-1.html

ecoren 发表于 2013-11-26 14:30:25

谢谢lz         
页: [1] 2 3 4 5
查看完整版本: 查找无位号器件的SKILL(开源)