"Editor Control>Pad Entry>Allow via under pad"를 변경하는 스크립트 짜기 (1/3)

Version 1

    안녕하세요?

     

    Pad Entry 옵션을 설정하는 메뉴는 두 가지로 접근할 수 있습니다.

    한가지는 Editor Control>Pad Entry>Allow via under pad 메뉴, 두번째는 Smart Utilities>Pad Entry Assistant.. 메뉴입니다.

    그런데 일반 보드 설계시, 레이아웃 상에 정의된 pad type과 via span이 너무 많은데, 매번 설계시마다 Gui에서 필요한 항목을 찾아가며 클릭하는 행위가  번거로울 때가 있습니다.

     

    예를들어, 여러가지 via span 중에 outer layer에 대한 via range만 (예를들어 10layer의 경우1-2 via, 1-3 via 또는 7-10, 9-10 via 등등) pad와 overlap이 허용되도록 체크하고 싶을 때, 이를 script로 구현하면, 그 다음부터는 새로운 설계시에 간편하게 pad entry 설정을 일괄 변경할 수 있을 것입니다.

    pad_entry.png

     

    스크립트 작성을 시작할 때에 가장 먼저 하는 일은, 해당 GUI Menu 에 대해서 어떤 Automation object property를 사용해야 하는지(혹은 Automation으로 컨트롤이 가능한건지) 확인해보는 일입니다.

    매뉴얼과 서포트넷에 관련 키워드(예, Pad Entry + Automation) 를 넣고 검색해보았습니다.

     

    서포트넷 검색 결과, 여러가지 중에 가장 유용해 보이는 것으로 일본에서 작성한 TechNote를 한 개 찾을 수 있었습니다.

    https://supportnet.mentor.com/portal?do=reference.technote&id=MJ247748

     

    본문에는 아래와 같이 pad entry 관련된 vbscript property가 정리되어 있고, 예제 스크립트까지 첨부가 되어있었습니다.

    예제 스크립트는 참고가 되었지만 제가 원하는 방식으로 구현하기 위해 새로운 스크립트를 짜기로 하였습니다.

    設定項目

    Property

    Pads ListPads
    Rules for all rectangular padsPadEntryGlobalRules
    Rules for selected pads(Trace)SelPadsTracePosRules
    Rules for selected pads(Via)SelPadsViaPosRules
    Via apans allowed under padsPadEntryAllowedPadsViaSpan
    Gridress pad entry for all padsGridlessPadEntry
    Fit View / Highlight PadFitView
    Exposed metal clearance on outer layersExposedMetalClearances

     

    다음은 매뉴얼에서 관련 property를 찾아보기로 합니다. "expedition_pcb_auto.pdf" 를 open합니다.

    "Pad Entry"라는 키워드를 넣고 검색을 하면 아래와 같이 문서상에 언급된 수많은 "Pad Entry" 가 나타납니다.

      search_pad_entry.png

    이 중 어느 페이지로 가야할 지 걱정할 필요는 없습니다. 아무 페이지나 찾아가서 Object에 대한 설명 부분을 읽어보면, 아래와 같이 Refer to "EditorControl Object"라는 설명이 반복되어 있어서, Pad Entry에 대한 property는 EditorControl Object에 속해있음을 알아챌 수 있습니다.

    그리고 아래와 같이 링크된 부분을 클릭하면 곧바로 EditorControl Object Properties Table로 가게 됩니다.

    EditorControl.png

     

    쭉 내려보니 거의 100개에 가까운 하위 property들이 존재합니다. 여기서 검색, 또는 직접 알파벳 순서 "P"부분까지 스크롤바를 내려서 "Pad Entry"항목을 찾아봅니다.

    EditorControlObjects.png

     

    Pad Entry 관련된 듯한 비슷한 이름의 property가 여러개 있습니다. 대충 아래 property들을 이용하면 될 것 같다는 생각이 듭니다.

      PadEntryProperties.png

    위에서 찾은 property중 한개를 클릭해보았습니다.

    [Usage]부분에 설명된 문법과 같이 명령하기 위해서는 먼저 'pPad와 'ePadShape' Argument 값이 필요하네요

    [Description] 과 [Return/Set Type]을 확인해보니, 특정 pad및 pad shape에 대해서 "via spans allowed under pads"에 현재 설정된 Layer Ranges값을 반환(Read)하거나,

    반대로 사용자가 원하는 Layer Ranges를 설정하도록 (Write) 할 수도 있겠네요.

    PadEntryAllowed...png

    검색된 Pad Entry property들을 훑어보고 어떤 동작들을 하는지는 알게 되었습니다.

    그런데, 웬만큼 숙련되지 않고는 이렇게 검색된 property를 사용해서 원하는 스크립트를 곧바로 작성하기는 어렵습니다.

     

    우선은 각각의 property가 어떤 값을 반환하며, 어떤 식으로 (문법이나 Object Type 을 잘못 사용해서 오류가 발생하지 않도록) 사용되어야 하는지 먼저 테스트해 볼 필요가 있습니다.

    이를 위해서 먼저 MsgBox 를 이용하여 각각의 property의 결과값을 확인해보도록 하겠습니다.