[Automation/Exp] ExpeditionPCB에 자신의 custom menu 추가

Version 1

    PCB Automation에서 제공하는 CommandBars 컬렉션을 사용하여 ExpeditionPCB의 상단에 있는 메뉴를 추가하거나 삭제할 수 있습니다.

     

    ExpeditionPCB에서 제공하는 기존의 메뉴를 삭제하면 기능을 사용하지 못할 수 있으므로, 신중을 기해야 합니다.

    자신의 메뉴를 추가하기 위해서는 우선 아래와 같이 CommandBars 컬렉션에 접근해야 합니다.

     

      Set cmdBars = Gui.CommandBars

     

    ExpeditionPCB 상단의 메뉴에 직접 접근하려면 아래와 같이 menu bar의 이름을 바로 지정할 수도 있습니다.

     

      Set docMenuBar = Gui.CommandBars("Document Menu Bar")

     

    이제, 자신의 메뉴를 추가하는 구문을 사용합니다.

     

      Set myMenu = docMenuBar.Controls.Add(cmdControlPopup,,,-1)

      myMenu.Caption = "My Menu"

     

    위의 구문에서는 menu bar에 새로운 항목을 만들어 myMenu라는 새로운 object로 정의했습니다.

     

    이 myMenu object에 control을 추가하고, Command ID 또는 key-in command를 활용하여 기능을 mapping 하면 됩니다.

     

      Set myCntrls = myMenu.Controls
      Set cmd = myCntrls.Add

      cmd.Caption = "Batch &DRC"
      cmd.OnAction = "32769"

      Set cmd = myCntrls.Add

      cmd.Caption = "View All"
      cmd.OnAction = "za"

      Set cmd = myCntrls.Add
      cmd.Caption = "Run my_script.vbs"
      cmd.OnAction = "run my_script.vbs"

     

    첨부된 my_menu.vbs는 위의 내용을 모두 모은 것으로, ExpeditionPCB에서 실행하면 아래 그림처럼 새로운 메뉴가 생깁니다.

     

      menu.jpg

     

    Menu Customize와 관련된 내용은 PCB Automation Reference(expedition_pcb_auto.pdf)의 Chapter 2 Common Application Servers > Customze Menus 에 자세히 소개되어 있으며, 예제 script도 툴 설치와 함께 제공됩니다.

     

      %SDD_HOME%\standard\examples\pcb\Automation\Scripts\CommandBars.vbs

     

     

    //==========================================================================

    // DISCLAIMER OF WARRANTY:  Unless otherwise agreed in writing,

    // Mentor Graphics software and associated files are provided "as is"

    // and without warranty.  Mentor Graphics has no obligation to support

    // or otherwise maintain software.  Mentor Graphics makes no warranties,

    // express or implied with respect to software including any warranty

    // of merchantability or fitness for a particular purpose.

    //

    // LIMITATION OF LIABILITY: Mentor Graphics is not liable for any property

    // damage, personal injury, loss of profits, interruption of business, or for

    // any other special, consequential or incidental damages, however caused,

    // whether for breach of warranty, contract, tort (including negligence),

    // strict liability or otherwise. In no event shall Mentor Graphics'

    // liability exceed the amount paid for the product giving rise to the claim.

    //==========================================================================