1 Reply Latest reply on Sep 7, 2015 2:41 AM by nick_hong

    plane shape refresh 방법 문의

    dr.hong

      Component의 pin을 Buried 하고자 합니다.

      아래와 같이 Script 실행 하면 Pin의 TieLegType은 변경 되지만 Plane shape은 변화가 없고 이전 상태로 보입니다.

      하여 plane shape을 refresh 하고 싶은데 어떻게 하면 되는지요?

       

      Set Compscoll = pcbDoc.Components

              For Each ocomp In Compscoll

                  Set pinscoll = ocomp.pins

                       For Each opin In pinscoll

                            opin.TieLegType = 4 'epcbTieLegBuried

                       Next

               Next

        • 1. Re: plane shape refresh 방법 문의
          nick_hong


          xPCB Layout(ExpeditionPCB)는 메뉴 또는 Automation script로 화면을 refresh하는 기능이 제공되지 않는다고 합니다.

          우회할 수 있는 방법으로, 화면에 표시되는 영역을 조정해 보는 것이 떠오르는데, 아래와 같이 현재화면 (ActiveView)에 대해 Extrema, 즉 영역 범위를 인식시킨 후 다시 표시할 영역을 셋팅하는 것을 시도해 볼 만 합니다.

            Dim oExtrema

            Set oExtrema = oDocument.ActiveView.ViewContentsExtrema

            oDocument.ActiveViewEx.SetExtentsToExtrema oExtrema

           

          만약 위의 방법으로 되지 않는다면, 표시할 영역에 작은 변화를 주는 아래와 같은 구문도 생각할 수 있습니다.

           

            Dim oExtrema

            Set oExtrema = oDocument.ActiveView.ViewContentsExtrema

            Call oDocument.ActiveViewEx.SetExtentsEx(oExtrema.MinX - 1, oExtrema.MinY - 1, oExtrema.MaxX + 1, oExtrema.MaxY + 1, False, epcbUnitCurrent)

           

          또는, Automation script에 TransAction을 사용하여 데이터에 변화를 주는 부분을 감싼다면, TransAction을 commit할 때에 자동을 화면이 갱신되는 것을 이용할 수 있습ㄴ디ㅏ.

          Transaction의 사용에 대해서는 PCB Automation Reference (expedition_pcb_auto.pdf) 의 Chapter 1 Examples of PCB Automation > Using Transactions 부분에 예제와 함께 자세히 설명되어 있습니다.

           

          제 환경에서는 xPCB Layout에서 변화가 있는데 화면이 갱신되지 않는 것을 재현하지 못하여 테스트 해 보지는 못했습니다. 적용해 보시고 결과를 알려 주시면 많은 도움이 될 것 같습니다.