본문 바로가기
  • Welcome!
VBA For Creo

#1 IpfcSession : 화면 UI를 이용하여 파일 오픈 하기

by ToolBOX01 2021. 1. 13.
반응형

■ Creo에서 UI로 파일 Open

Creo 화면에서 Open 대화 상자를 통해 파일 이름을 선택 기능 입니다.  클래스 IpfcSession , 함수 UIOpenFile를 사용 합니다. Return 값은 string 이며 폴더 이름 및 Creo 파일명을 함께 반환 합니다. Return 예시) "C:\Users\Public\Documents\korea.prt.5". CREO 파일명을 잘라서 사용 해야 합니다.


■ 화면을 연결 코드

Sub UI_Open_box()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim oSession As IpfcSession
    Set conn = asynconn.Connect("", "", ".", 5)
    Set oSession = conn.Session

 

PART 타입으로 필터링, UI를 이용하여 폴더 및 파일 이름을 가져오기.

    Dim oCreateFileOpen As New CCpfcFileOpenOptions
    Dim oFileOpenOptions As IpfcFileOpenOptions
    
    Dim oOpenBox As String
    Dim oEndpos As String
    Dim oEndword As String
    Dim oCroeFileName As String
    Dim OcreoFileLength As Integer
    
    Set oFileOpenOptions = oCreateFileOpen.Create("*.prt")
    
    oOpenBox = oSession.UIOpenFile(oFileOpenOptions)

만일 Set oFileOpenOptions = oCreateFileOpen.Create("*") 로 정의 하면, 모든 파일을 선택 할수 있습니다.


■ 폴더 이름과 파일 버전을 삭제, 설명자를 정의 합니다

    oEndpos = Len(oOpenBox) - InStrRev(oOpenBox, "\", -1, vbTextCompare)
    oEndword = Right(oOpenBox, oEndpos)
    OcreoFileLength = Len(oEndword) - InStr(oEndword, ".")
    oCroeFileName = Left(oEndword, (Len(oEndword) - OcreoFileLength + 3))
           
    Dim ModelDescriptorCreate As New CCpfcModelDescriptor
    Dim ModelDescriptor As IpfcModelDescriptor
    Set ModelDescriptor = ModelDescriptorCreate.CreateFromFileName(oCroeFileName)

위 코드는 자주 사용가능 합니다.  "c:\korea.prt"를 "korea"로 변환 됩니다 

■ File을 Open 합니다.  Open한 파일은 활성화 시킵니다.

    Dim Session As IpfcBaseSession
    Dim window As IpfcWindow
    
    Set Session = conn.Session
    Set window = Session.OpenFile(ModelDescriptor)

    window.Activate
           
    'Disconnect with Creo
    conn.Disconnect (2)
    
End Sub

취소 버튼을 클릭하면 오류가 발생 합니다.  예외 처리는 적용 하지 않았습니다.

UI_Open_box.xlsm
0.02MB

 

■ 전체 프로그램 코드

Sub UI_Open_box()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim oSession As IpfcSession
    
    Dim oBaseSession As IpfcBaseSession
    Dim window As IpfcWindow
    
On Error GoTo RunError    
    Set conn = asynconn.Connect("", "", ".", 5)
    Set oSession = conn.Session
    
    '// 파일 타입 선택
    Dim oCreateFileOpen As New CCpfcFileOpenOptions
    Dim oFileOpenOptions As IpfcFileOpenOptions
    Set oFileOpenOptions = oCreateFileOpen.Create("*.prt")
    
    Dim oOpenBox As String
    Dim oEndpos As String
    Dim oEndword As String
    Dim oCroeFileName As String
    Dim OcreoFileLength As Integer
    
    oOpenBox = oSession.UIOpenFile(oFileOpenOptions)
    
    oEndpos = Len(oOpenBox) - InStrRev(oOpenBox, "\", -1, vbTextCompare)
    oEndword = Right(oOpenBox, oEndpos)
    OcreoFileLength = Len(oEndword) - InStr(oEndword, ".")
    oCroeFileName = Left(oEndword, (Len(oEndword) - OcreoFileLength + 3))
           
    Dim ModelDescriptorCreate As New CCpfcModelDescriptor
    Dim ModelDescriptor As IpfcModelDescriptor
    Set ModelDescriptor = ModelDescriptorCreate.CreateFromFileName(oCroeFileName)

    Set oBaseSession = conn.Session
    Set window = oBaseSession.OpenFile(ModelDescriptor)

    window.Activate
           
    'Disconnect with Creo
    conn.Disconnect (2)
    
    
    'Cleanup
    Set asynconn = Nothing
    Set conn = Nothing
    Set oBaseSession = Nothing
    Set oSession = Nothing
    Set oModel = Nothing
    

RunError:

    If Err.Number <> 0 Then
        Exit Sub
        'MsgBox "Process Failed : Unknown error occurred." + Chr(13) + _
                "Error No: " + CStr(Err.Number) + Chr(13) + _
                "Error: " + Err.Description, vbCritical, "Error"

        If Not conn Is Nothing Then
            If conn.IsRunning Then
                conn.Disconnect (2)
            End If
        End If
    End If
  
End Sub

 

■ 프로그램 동작 동영상

 

■ IpfcSession

IpfcSession은 PTC Creo Parametric의 VBA API에서 사용되는 중요한 클래스입니다. 이 클래스는 Creo Parametric 세션을 나타내며, Creo Parametric 모델을 조작하고 모델 관리 작업을 수행하는 데 사용됩니다.

IpfcSession 클래스는 Creo Parametric과 상호작용하며 모델 열기/저장, 파트/어셈블리 조작, 기하학적 작업, 설정 관리 등 다양한 작업에 필요한 인터페이스와 메서드를 제공합니다.

 

IpfcSession #2 : 함수 UISaveFile, 저장 대화 상자 표시

■ UI로 파일 저장 새로운 파일을 생성하고, UI를 통해 현재 활성화된 파일을 저장 합니다. 다음과 같은 순서로 코드를 생성 합니다. ▷ Creo 연결 Sub UI_SAVE() Dim asynconn As New pfcls.CCpfcAsyncConnection Dim c

tool-2020.tistory.com


영업 문의 : lionkk@idt21c.com