업무 자동화/VBA, VB.NET For Creo

IpfcBaseSession : Method (Function GetModelWindow)

ToolBOX01 2025. 11. 9. 17:31
반응형

◎ Function GetModelWindow(Mdl as IpfcModel) as IpfcWindow [optional]

주어진 모델 객체(IpfcModel)가 현재 Creo Parametric 그래픽 창(Window)에 표시되고 있는지 확인하고, 표시되고 있다면 해당 창 객체(IpfcWindow)를 반환하는 기능입니다. 지정된 모델이 표시되고 있는 그래픽 창 객체를 반환합니다.

매개변수

Mdl (IpfcModel): 창을 찾으려는 대상 모델 객체입니다 (예: 파트, 어셈블리).

반환값

IpfcWindow [선택 사항]: 모델이 표시되는 창 객체를 반환합니다. 만약 모델이 메모리에 로드되어 있지만 화면에 표시되고 있지 않다면 Nothing을 반환합니다.

주요 예외

IpfcXToolkitNotFound: 함수가 창을 찾지 못했을 때 발생할 수 있습니다. (모델이 화면에 표시되지 않은 경우에도 발생 가능하므로, Nothing 검사를 우선해야 합니다.)

활용 시나리오

 

  • 모델 표시 여부 확인: 모델이 세션에 로드되어 있지만 현재 사용자에게 보이는지 확인하여, 보이지 않으면 Window.Activate() 등을 사용하여 활성화할 수 있습니다.
  • 창 제어: 창 객체를 얻은 후, 해당 창의 크기 조정, 위치 이동, 최소화/최대화 등(IpfcWindow 메서드 사용)을 수행할 수 있습니다.
  • 다중 창 관리: 여러 모델이 여러 창에 분산되어 있을 때, 특정 모델이 어느 창에 속하는지 식별할 수 있습니다

 


💻 Sample code (모델의 창 객체 가져오기)

특정 모델을 검색한 후, Function GetModelWindow를 사용하여 해당 모델이 화면에 표시되고 있는지 확인하고, 필요하다면 해당 창을 활성화하는 코드를 보여줍니다.

Dim pfcSession As pfcls.IpfcBaseSession
Dim myModel As pfcls.IpfcModel
Dim modelWindow As pfcls.IpfcWindow

Const TARGET_MODEL As String = "assembly_top.asm"

'// GetModelWindow 함수를 사용하여 모델의 창 객체 검색 //'
Set modelWindow = pfcSession.GetModelWindow(myModel)

If Not modelWindow Is Nothing Then
   '// 창을 찾았음 (모델이 화면에 표시되고 있음) //'
   MsgBox "모델 '" & TARGET_MODEL & "'의 창을 찾았습니다. 창을 활성화합니다.", vbInformation
   
   '// 창을 현재 활성 창으로 설정하여 사용자에게 보이도록 함 //'
   modelWindow.Activate
   
End If

 

by korealionkk@gmail.com


반응형