sujuanyu888 发表于 2016-4-27 21:03:04

【求助】帮我看下附件的skill怎么用

   附件skill主要作用是批量报告CLINE的长度。可以直接拷贝到excel里面。主要用处是板子调等长后,再把调好的线数据放入表格,看是否pass。用过intel的芯片,应该知道这要求。之前我用的是打包的skill自动加载的,我现在用不了,但是需要这个功能,所以找到这个skill,但是用普通的load我加载不了。请大神帮我看下代码。这个skill怎么用的。

defir 发表于 2016-4-27 21:24:53

加一句axlCmdRegister("Length_Report" 'Length_Report)

defir 发表于 2016-4-27 22:31:07

你要结果不是点一根线就生成一根线的长度吧?

   Net Length Report
                     Allan Wu (2003/12/25)
-----------------------------------------
1) R_VGA_HSYNC   7350.345

Total length : 7350.345
-----------------------------------------

sujuanyu888 发表于 2016-4-28 07:11:24

点一根就生成一根,点多根就报告多根线。我今天试下你的办法。先谢谢你了

sujuanyu888 发表于 2016-4-28 08:37:11

我还提示错误,undefined function_tempFile.能不能加我扣扣啊,这边我传不上图,我扣扣传你看看。84659039

sujuanyu888 发表于 2016-5-1 11:02:39

defir 发表于 2016-4-27 22:31
你要结果不是点一根线就生成一根线的长度吧?

   Net Length Report


我还有提示错误,能帮我看下?

defir 发表于 2016-5-2 22:07:18

sujuanyu888 发表于 2016-5-1 11:02
我还有提示错误,能帮我看下?

/*
*       Net Length Report For Allegro 14.2
*                  
*                        Allan Wu (2003/12/25)
*
*    1. Function Key F9 Define
*    2. Set Select Filter CLINES
*/
axlCmdRegister("Length_Report" 'Length_Report)
procedure( Length_Report()
        popup = axlUIPopupDefine(nil
                (list         (list "Done" `axlFinishEnterFun)
                                (list "Cancel" `axlcancelEnterFun)
                ))
        axlUIPopupSet(popup)
        (axlClearSelSet)
        (axlSetFindFilter ?enabled(list "noall" "clines" "nameform")
                          ?onButtons(list "noall" "clines"))
        axlOpenFindFilter()
        port = outfile("./lengthReport.txt")
        ;port = axlDMOpenLog("lengthReport")
        fprintf(port "      Net Length Report\n")
        fprintf(port "                     Allan Wu (2003/12/25)\n")
        fprintf(port "-----------------------------------------\n")
        fprintf(port "-----------------------------------------\n")
        axlDMClose(port)
        logWindow = axlUIViewFileCreate("lengthReport.txt" "Net Length Report" nil)
        )
        (while (axlSelect)
                cpaths = axlGetSelSet()
                total = 0
                items = nil
                if((logWindow != nil) axlUIWClose(logWindow))
                logWindow = nil
                port = outfile("./lengthReport.txt")
                fprintf(port "      Net Length Report\n")
                fprintf(port "                     Allan Wu (2003/12/25)\n")
                fprintf(port "-----------------------------------------\n")
                foreach(path cpaths
                        segments = path->segments
                        pathlen = 0
                        foreach(segment segments
                                box = segment->startEnd
                                lx = caar(box)
                                ly = cadar(box)
                                rx = caadr(box)
                                ry = cadadr(box)
                                pathlen = pathlen + sqrt( (lx-rx)**2+(ly-ry)**2 )
                        )
                        total = total + pathlen
                        items = cons(list(path->net->name pathlen) items)
                )
                cpaths = sortcar(items nil)
                bknet = caar(cpaths)
                bklen = 0
                count = 1
                foreach( path cpaths
                        if( (bknet==car(path))
                                then
                                        bklen = bklen + cadr(path)
                                else
                                        fprintf(port "%2d)\t%-15s\t%.3f\n" count bknet bklen)
                                        count = count + 1
                                        bknet = car(path)
                                        bklen = cadr(path)
                        )
                )
                fprintf(port "%2d)\t%-15s\t%.3f\n" count bknet bklen)
                fprintf(port "\nTotal length : %.3f\n" total)
                fprintf(port "-----------------------------------------\n")
                axlDMClose(port)
                if( (logWindow==nil)
                        then
                        logWindow = axlUIViewFileCreate("lengthReport.txt" "Net Length Report" nil)
                        else
                        (axlUIViewFileReuse logWindow "lengthReport.txt" "Net Length Report" nil)
                )
        )
        if((logWindow != nil) axlUIWClose(logWindow))
        axlUIPopupSet(nil)       
)

defir 发表于 2016-5-2 22:07:57

sujuanyu888 发表于 2016-5-1 11:02
我还有提示错误,能帮我看下?

用我修改后的试试吧

sujuanyu888 发表于 2016-5-3 18:56:53

defir 发表于 2016-5-2 22:07
用我修改后的试试吧

我按照你的skill,执行后,点不了东西,提示图片上错误,而且都退不出来,咋回事啊?

sujuanyu888 发表于 2016-5-3 20:32:45

我这是手动加载的。自动加载到文件里,直接软件都打不开。手动加载我打的是:skill load ‘’length_report.il‘’
页: [1] 2
查看完整版本: 【求助】帮我看下附件的skill怎么用