[Automation/Exp] ExpeditionPCB에서 현재 열려 있는 PCB도면과 연결된 project path 확인

Version 3

    ExpeditionPCB의 Automation에서 Document.Environment 로 얻을 수 있는 Environment Object는 아래와 같이 도면의 환경과 관련된 다양한 property를 갖고 있습니다.



    Property Description
    CentralLibraryFullName Returns the name and path of the Central library.
    LibrarySearchOrder Returns the list of partition names representing the library search order.
    LocalCellLibraryFullName Returns the name and path of the local cell library.
    LocalLibraryFullName Returns the name and path of the local Central library.
    LocalPadstackLibraryFullName Returns the name and path of the local padstack library.
    LocalPDBFullName Returns the name and path of the local parts database.
    LogFilesDirectory Returns the path of the LogFiles directory.
    ProjectFileFullName Returns the name and path of the project file.


    * 출처: PCB Automation Reference (expedition_pcb_auto.pdf)



    위의 내용 중, 현재 열려 있는 PCB도면에 연결된 project path는 ProjectFileFullName에 해당합니다. 따라서, 다음과 같은 내용을 script를 작성한다면 쉽게 project path를 확인할 수 있습니다.

    (편의상 ExpeditionPCB에서 document object를 사용하기 위한 ValidateServer 함수의 내용은 생략했습니다.)


    If (ValidateServer(pcbDoc) = 1) Then

      Set oEnv = pcbDoc.Environment

      sPrjFilePath = oEnv.ProjectFileFullName

      MsgBox sPrjFilePath

    End If


    만약 연결된 project file을 찾을 수 없을 때에는 결과로 표시되는 project path에 폴더명까지만 표시되고 ".prj"로 마쳐지지 않게 되므로 연결된 project를 찾을 수 없을 경우에 대한 조건에 활용할 수 있습니다.


    또한, Document.ProjectIntegration 을 통해 ProjectIntegration object에 접근하여 ProjectIntegration.ProjectFile 로도 같은 결과를 얻을 수 있으나, 만약 연관된 project가 없을 경우에는 Document.ProjectIntegration 을 얻으려 할 때 scripting error가 발생합니다.

    이 경우에는 Error handling을 이용하여 조건분기시키는 방법으로 사용하실 수도 있습니다.


    첨부파일은 Validation 코드가 포함되어 있으므로, ExpeditionPCB에서 바로 실행하여 결과를 볼 수 있습니다.




    // 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.