반응형
■ 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
취소 버튼을 클릭하면 오류가 발생 합니다. 예외 처리는 적용 하지 않았습니다.
■ 전체 프로그램 코드
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과 상호작용하며 모델 열기/저장, 파트/어셈블리 조작, 기하학적 작업, 설정 관리 등 다양한 작업에 필요한 인터페이스와 메서드를 제공합니다.
영업 문의 : lionkk@idt21c.com
'VBA For Creo' 카테고리의 다른 글
Interactive Selection - 미완성 (0) | 2021.01.14 |
---|---|
#2 IpfcSession: 함수 UISaveFile 파일 선택 하기 (0) | 2021.01.13 |
#2 - Hello 메세지 표시하기 (0) | 2021.01.12 |
#4 IpfcBaseSession - 지정된 디렉토리의 파일 목록 찾기 (0) | 2021.01.12 |
VBA 기본 문법 (0) | 2021.01.12 |