반응형
◎ 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

반응형
'업무 자동화 > VBA, VB.NET For Creo' 카테고리의 다른 글
| IpfcBaseSession : Method (Sub RegisterCustomModelCheck) (0) | 2025.11.03 |
|---|---|
| IpfcBaseSession : Method (Sub LoadConfigFile) (0) | 2025.11.03 |
| IpfcBaseSession : Method (Sub ExportProfileLoad) (0) | 2025.11.02 |
| IpfcBaseSession : Method (Sub ExportDirectVRML) (0) | 2025.11.02 |
| IpfcBaseSession : Method (Sub ExportCurrentRasterImage) (0) | 2025.11.01 |