<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇Cadence專(zhuān)區(qū)Cadence PCB設(shè)計(jì)初中級(jí) → Cadence Allegro SKILL語(yǔ)言


      共有12669人關(guān)注過(guò)本帖樹(shù)形打印

    主題:Cadence Allegro SKILL語(yǔ)言

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    Cadence Allegro SKILL語(yǔ)言  發(fā)帖心情 Post By:2010-12-8 13:34:29

    大綱:
        (一)、SKILL基礎(chǔ)
        (二)、利用AXL接口操作Allegro PCB對(duì)象
        (三)、注冊(cè)和使用自定義Allegro命令
        (四)、Allegro UI界面設(shè)計(jì)和響應(yīng)

    Email: TrizDev@yahoo.cn   (以前的郵箱丟了)


    四、Allegro UI界面設(shè)計(jì)和響應(yīng)
    1、簡(jiǎn)介
        界面是交互設(shè)計(jì)中不可缺少的一部分,很多時(shí)候我們無(wú)法只讓程序孤芳自賞地運(yùn)行
       
    2、基于文本描述的SKILL界面設(shè)計(jì)
        例子:Example.form(簡(jiǎn)單的幾段文字已經(jīng)勾勒出我們想要的界面)
       
        FILE_TYPE=FORM_DEFN VERSION=2
        FORM
        FIXED
        PORT 26 20
       
        HEADER "FINDER..."
        TILE
        TEXT "COMPONENT LIST"
        TLOC 1 1
        FSIZE 25 3
        ENDTEXT
       
        FIELD Placed_List
        FLOC 1 3
        LIST "" 24 16
        OPTION sort
        ENDFIELD
        FIELD done
        FLOC 9 33
        MENUBUTTON "  OK  " 10 3
        ENDFIELD
        ENDTILE
        ENDFORM
       
    3、測(cè)試Form的方法
        Form測(cè)試接口函數(shù)axlFormTest(s_formPath)
       
        示例:
            axlFormTest("C:\\Example.form")
       
        功能:
            利用這個(gè)函數(shù)可以檢查Form文件的語(yǔ)法以及Form的顯示效果, 編輯界面時(shí)不斷使用,使你的界面更加漂亮
            
        Tips:
            A、Allegro所有的Form文件都放在Setup - User Preferences...菜單,選擇UI_Path列別中的formpath。
               查看Allegro所有界面文件,很好的界面重用資源
               
            B、將自定義的Form文件放在formpath下可以不用寫(xiě)絕對(duì)路徑調(diào)用,不信試試
            
    4、界面工具開(kāi)發(fā)ABCDE
        A、創(chuàng)建界面文件并使用axlFormCreate或axlMiniStatusLoad打開(kāi)Form句柄(注意卸磨殺驢)
        B、使用axlFormSetField初始化界面區(qū)域
        C、axlFormDisplay顯示界面
        D、在axlFormCallback中定義用戶(hù)交互和區(qū)域響應(yīng)
        E、使用axlFormClose關(guān)閉界面窗口
       
        /*
            功能:通過(guò)選擇界面列表框中的器件名稱(chēng)瀏覽器件
            命令:OverviewComps
        */
       
        ;注冊(cè)命令
        axlCmdRegister("OverviewComps"  'TestFormAppMainModule)
       
        ;創(chuàng)建界面文件并顯示界面(主模塊)
        procedure( TestFormAppMainModule()
        prog( (FileName  FilePort)
            ;寫(xiě)文件生成界面文件
            FileName = "TestForm.form"
            FilePort = outfile(FileName  "w")
                   
            fprintf(FilePort  "FILE_TYPE=FORM_DEFN VERSION=2\n")
            fprintf(FilePort  "FORM\n")
            fprintf(FilePort  "FIXED\n")
            fprintf(FilePort  "PORT 26 20\n\n")
            
            fprintf(FilePort  "HEADER \"FORM TEST...\"\n\n")
            
            fprintf(FilePort  "TILE\n\n")
            
            fprintf(FilePort  "TEXT \"ComponentList:\"\n\n")
            fprintf(FilePort  "TLOC 1 1\n")
            fprintf(FilePort  "FSIZE 25 3\n")
            fprintf(FilePort  "ENDTEXT\n\n")
            
            fprintf(FilePort  "FIELD ComponentList\n")
            fprintf(FilePort  "FLOC 1 3\n")
            fprintf(FilePort  "LIST \"\" 24 16\n")
            fprintf(FilePort  "OPTION sort\n")
            fprintf(FilePort  "ENDFIELD\n\n")
            
            fprintf(FilePort  "FIELD Quit\n")
            fprintf(FilePort  "FLOC 9 33\n")
            fprintf(FilePort  "MENUBUTTON \"EXIT\" 10 3\n")
            fprintf(FilePort  "ENDFIELD\n\n")
            
            fprintf(FilePort  "ENDTILE\n\n")
            
            fprintf(FilePort  "ENDFORM\n\n")
            
            close(FilePort)
            
            ;創(chuàng)建界面句柄,刪除界面文件(卸磨殺驢...)
            fw = axlFormCreate(gensym()  FileName  '("E"  "OUTER")  'TestFormAppCallBack  t)
            deleteFile(FileName)
            
            ;界面區(qū)域初始化
            TestFormFieldInit(fw)
            
            ;顯示界面
            axlFormDisplay(fw)
            
            return(t)
            
        ))
       
        ;界面區(qū)域初始化
        procedure( TestFormFieldInit(fw)
        prog( (CompsNameList)
            ;獲取所有的器件名稱(chēng)
            CompsNameList = axlDBGetDesign()->components~>name
            
            ;設(shè)置器件列表區(qū)域
            axlFormSetField(fw  "ComponentList"  CompsNameList)
            
            return(t)
        ))
       
        ;界面區(qū)域響應(yīng)回調(diào)函數(shù)
        procedure( TestFormAppCallBack(fw)
        prog( (CompName  CompId)
            case(fw->curField
                ("ComponentList"
                    CompName = fw->curValue
                    CompId = axlSelectByName("COMPONENT"  CompName)
                   
                    ;定位到對(duì)象
                    axlZoomToDbid(CompId  t)
                   
                    ;顯示對(duì)象詳細(xì)信息
                    axlShowObject(CompId)
                )
                
                ("Quit"
                    ;清理現(xiàn)場(chǎng)
                    axlClearSelSet()
                    axlSetFindFilter(?enabled "NOALL"  ?onButtons "NOALL")
                   
                    axlFormClose(fw)
                )
            )  
            
            return(t)
            
        ))
       
    5、參考文檔
        %CDSROOT%\doc
       
        例子:
        D:\DesignAdvance\Cadence\SPB_15.2\doc
       
        參考手冊(cè)列表:
        algroskill          AXL接口函數(shù)參考手冊(cè)
       
        Tips:
            看看下面的路徑下是什么東西,保證樂(lè)死你... ...
            %CDSROOT%\share\pcb\example\skill
            
    6、課后習(xí)題
        搞懂%CDSROOT%\share\pcb\example\skill路徑下所有的程序代碼,然后恭喜你入門(mén)了... ...

    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    Cadence Allegro SKILL語(yǔ)言








    簽名