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

초보자를 위해 . . . Creo 파일을 Session(메모리)으로 가져오기

by ToolBOX01 2026. 4. 30.
반응형

■ 하드 디스크의 Creo 파일을 Creo Session(메모리)으로 가져오기

  • 사용 함수  : RetrieveModel ()
  • 중요한 점: Creo 화면(UI)에는 표시되지 않습니다. 백그라운드에서 세션에만 로드됨.
  • 화면에 표시하려면 OpenFile을 써야 합니다.

 

 

예제 코드

Sub Sessionwindow()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim oSession As pfcls.IpfcBaseSession
    Dim Model As IpfcModel
    Dim Window As IpfcWindow

    Set oSession = conn.session
    Set conn = asynconn.Connect("", "", ".", 5)

    '// OPEN 파일 이름'
    Dim oNewModelDescriptor As New CCpfcModelDescriptor
    Dim oModelDescriptor As IpfcModelDescriptor
    Set oModelDescriptor = oNewModelDescriptor.CreateFromFileName("korea.prt")
    
    '// Session으로 파일 가져오기 '
    Set Model = oSession.RetrieveModel(oModelDescriptor)

    Set Window = oSession.OpenFile(oModelDescriptor)
    Set model = Window.model

    '// Open 모델 활성화 '
    Window.Activate

    '// Open 모델 저장 위치 '
    MsgBox model.Origin

    'Disconnect with Creo
    conn.Disconnect (2)

End Sub

 

■ 전체 코드 상세 설명

1.  Creo 연결

VBA 프로그램을 개발 하기 위해, 항상 사용하는 코드 입니다

Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection
Dim oSession As pfcls.IpfcBaseSession

Set conn = asynconn.Connect("", "", ".", 5)
Set oSession = conn.session

 

  • CCpfcAsyncConnection : Creo와 VBA를 비동기로 연결하는 객체
  • Connect("", "", ".", 5) : 현재 폴더(".")에서 Creo에 연결, 5초 타임아웃
  • conn.session : 연결된 Creo의 Session 객체를 가져옴

Creo가 On 되어 있으면 변수 " oSession "에 저장 됩니다. 만일 Creo가 Off 되어 있으면 " oSession"에 값은 없습니다.

2. 파일 이름 지정 하기

Dim oNewModelDescriptor As New CCpfcModelDescriptor
Dim oModelDescriptor As IpfcModelDescriptor

Set oModelDescriptor = oNewModelDescriptor.CreateFromFileName("korea.prt")

 

  • CCpfcModelDescriptor : 파일 정보를 담는 객체 생성
  • CreateFromFileName("korea.prt") : 불러올 파일 이름을 지정
  • 파일명을 엑셀 셀로 바꾸면 동적으로 활용 가능: (파일 이름을 입력할수 있도록 설정 하기)
  • Creo 파일 명은 파일 확장자 까지 입력 해야 합니다
  • 변수 "oModelDescriptor"에 사용자가 입력한 파일 이름이 저장 됩니다.  

 

oCreofilename = Cells(5, "E")  ' 엑셀 E5 셀의 값을 파일명으로 사용


Set oModelDescriptor = oNewModelDescriptor.CreateFromFileName( oCreofilename )

 

3. RetrieveModel ()

Dim Model As IpfcModel

Set Model = oSession.RetrieveModel(oModelDescriptor)

 

  • 하드 디스크에 있는 파일("korea.prt")을 Session 메모리에만 로드
  • Creo 화면에는 아무 변화 없음
  • 반환값은 변수 Model (모델 데이터 객체)
  • 주로 하드 디스크의 파일을 읽거나 백그라운드 처리할 때 사용

 

4. Creo 화면에 표시 하기

Dim Window As IpfcWindow
Set Window = oSession.OpenFile(oModelDescriptor)
Set model = Window.model

Window.Activate       ' Creo 화면에서 해당 창을 활성화
MsgBox model.Origin   ' 모델이 저장된 경로를 팝업으로 표시

 

  • 파일을 Creo 화면(UI)에 실제로 열어서 표시
  • OpenFile은 IpfcWindow를 반환 → 거기서 .model로 모델 객체 접근
  • Window.Activate : 여러 창이 열려 있을 때 해당 창을 앞으로 가져옴
  • model.Origin : 모델 파일의 저장 경로를 확인할 수 있음

프로그램 적으로 Creo 파일을 Open 하는 방법은
선택된 파일이 "Session"에 저장되고, 이것을 하나의 Window에 배정 하는 과정입니다. 
자동화된 프로그램을 만들기위해서는 순차적으로 Creo가 어떻게 동작 하는지 관찰을 해야 합니다.

 

 

■ 참고 사이트

 

#6 IpfcBaseSession 개체 : [Function] RetrieveModel

■ 하드 디스크에 있는 파일 POPUP 창으로 불러오가 IpfcBaseSession.RetrieveModel은 하드 디스크에 있는 Creo 파일을 Creo Session으로가져오는 함수 입니다. (작업 폴더에서 Creo Parametric 세션으로 지정된 모

tool-2020.tistory.com

 

초보자가 프로그램을 개발하려면, 남의 것을 복사하고, 실행을 해보고, 관찰하고, AI와 함께 학습을 해보세요.
몇가지 코드를 따라 하다보면 감각을 익힐수 있습니다. 어린 아이에게 다양한 "사고" 이미지를 보여주면 "사과"를 인식합니다. 프로그램 개발도 이와 유사하다고 생각 됩니다

 

by korealionkk@gamil.com

반응형