본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/VBA, VB.NET For Creo

IpfcBaseSession : Method (Sub FlushCurrentWindow)

by ToolBOX01 2025. 11. 3.
반응형

◎ Sub FlushCurrentWindow ()

현재 활성화된 Creo 창에 **대기 중인 모든 디스플레이 명령(pending display commands)**을 즉시 실행하도록 강제합니다. 즉, 화면에 변경 사항을 즉시 반영하도록 하는 역할을 합니다. VBA 코드가 여러 치수를 연속적으로 변경하거나 복잡한 작업을 수행할 때, Creo는 성능 최적화를 위해 디스플레이 업데이트를 잠시 미룹니다. 이 경우, 모든 치수 변경 API 호출이 끝난 후에도 화면에는 이전 형상이 남아 있을 수 있습니다. 

따라서 VBA 코드를 통해 치수를 변경한 후, 사용자에게 즉시 변경된 모델을 보여주어야 할 필요가 있다면, Sub FlushCurrentWindow () 를 실행 해야 합니다. 

📌 주요 내용 및 주의사항

  • 기능: 현재 창에 대한 화면 업데이트를 강제로 수행합니다. 예를 들어, VBA 코드가 여러 그래픽 작업(선 그리기, 객체 이동 등)을 연속적으로 수행했을 때, 일반적으로 Creo는 성능을 위해 이러한 명령을 모아두었다가 한 번에 처리합니다. 이 메서드를 호출하면 모아둔 명령들을 즉시 화면에 표시하게 됩니다.
  • 권장 사용 시점: 설명에 나와 있듯이, 모든 디스플레이 작업이 완료된 후에만 이 메서드를 호출하는 것이 좋습니다.
  • 성능 저하 경고: Windows Vista 또는 Windows 7을 실행하는 시스템에서는 이 메서드를 과도하게 사용할 경우 심각한 속도 저하가 발생할 수 있습니다. 이는 시스템의 그래픽 처리 방식과 관련이 있습니다.

Sample Code

Dim Session As pfcls.IpfcBaseSession

'// 가정: 모델의 색상을 변경하거나, 피처를 생성/수정하는 등의 // '
'// 화면 표시와 관련된 일련의 Creo API 호출이 여기에 들어갑니다. // '
    
예시: model.ChangeColor(...)
예시: model.ZoomToFit(...)


'// 이 시점에서 위의 모든 디스플레이 명령이 현재 창에 즉시 반영됩니다.'//
Session.FlushCurrentWindow

Session.FlushCurrentWindow: 모든 디스플레이 작업이 완료된 후, IpfcSession 객체의 메서드인 FlushCurrentWindow를 호출하여 대기 중인 모든 그래픽 업데이트를 강제로 현재 Creo 창에 즉시 표시합니다.

이 함수는 사용자에게 복잡한 작업 중간 결과가 아니라 최종 결과를 즉시 보여주어야 할 때 유용하게 사용될 수 있습니다.

by korealionkk@gmail.com


반응형