본문 바로가기
  • 환영 합니다 ! Welcome!
VBA For Creo

#2 IpfcSession: 함수 UISaveFile 파일 선택 하기

by ToolBOX01 2021. 1. 13.
반응형

■ UI로 파일 저장 

새로운 파일을 생성하고, UI를 통해 현재 활성화된 파일을 저장 합니다. 다음과 같은 순서로 코드를 생성 합니다.

▷  Creo 연결

Sub UI_SAVE()

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

 

▷ UI로 Creo 파일 저장 대화 상자 입력
   반드시 현재 활성화 되어 있는 creo 파일을 선택 해야 합니다. "oFileSaveOptionsCreate.Create("*")" 에서
   "*"는 파일 필터링 이며, "prt"/ "asm" /"drw"등을 선택할 수 있습니다

    Dim oFileSaveOptionsCreate As New CCpfcFileSaveOptions
    Dim oFileSaveOptions As IpfcFileSaveOptions
    Set oFileSaveOptions = oFileSaveOptionsCreate.Create("*")
    
    Dim oCreosave As String
    oCreosave = oSession.UISaveFile(oFileSaveOptions)

 

폴더 이름, 파일 이름 , 버전 숫자 분리

    Dim oEndword As String
    Dim oEndpos As Integer
    
    oCroeFileName As String
    OcreoFileLength As Integer

    oEndpos = Len(oCreosave) - InStrRev(oCreosave, "\", -1, vbTextCompare)
    oEndword = Right(oCreosave, oEndpos)
    OcreoFileLength = Len(oEndword) - InStr(oEndword, ".")
    oCroeFileName = Left(oEndword, (Len(oEndword) - OcreoFileLength + 3))

 

파일 저장

  ipfcmodel 클래스를 이용하여 파일을 저장 합니다. 파일 이름은 "IpfcModelDescriptor" 객체 타입 으로
  정의 합니다

    Dim ModelDescriptorCreate As New CCpfcModelDescriptor
    Dim ModelDescriptor As IpfcModelDescriptor
    Set ModelDescriptor = ModelDescriptorCreate.CreateFromFileName(oCroeFileName)

    Dim session As IpfcBaseSession
    Dim oModel As IpfcModel
    Set session = conn.session   
    Set oModel = session.GetModelFromDescr(ModelDescriptor)
     
    oModel.Save
         
    'Disconnect with Creo
    conn.Disconnect (2)

 

 


▷ 전체 프로그램 코드

Sub UI_SAVE()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection: Set conn = asynconn.Connect("", "", ".", 5)
    Dim oSession As IpfcSession: Set oSession = conn.session      
          
    Dim oFileSaveOptionsCreate As New CCpfcFileSaveOptions
    Dim oFileSaveOptions As IpfcFileSaveOptions
    Set oFileSaveOptions = oFileSaveOptionsCreate.Create("*")
    Dim oCreosave As String
    oCreosave = oSession.UISaveFile(oFileSaveOptions)
    
    Dim oEndword As String, oCroeFileName As String
    Dim oEndpos As Integer, OcreoFileLength As Integer

    oEndpos = Len(oCreosave) - InStrRev(oCreosave, "\", -1, vbTextCompare)
    oEndword = Right(oCreosave, 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)

    Dim session As IpfcBaseSession
    Set session = conn.session   
    Dim oModel As IpfcModel
    Set oModel = session.GetModelFromDescr(ModelDescriptor)
     
    oModel.Save
         
    'Disconnect with Creo
    conn.Disconnect (2)
    
End Sub

 

Creo에서 현재 모델의 이름과 동일한 파일 이름을 선택 해야 저장 할수 있습니다. IpfcSession.UISaveFile는 자장할 파일의  이름과 path를 리턴 합니다. IpfcModel.save 으로 모델을 저장 합니다.

 

▷ 작업 공간 변경 코드

    Dim oDirectorySelectionOptionsCreate As New CCpfcDirectorySelectionOptions
    Dim oDirectorySelectionOptions As IpfcDirectorySelectionOptions
    Set oDirectorySelectionOptions = oDirectorySelectionOptionsCreate.Create
    
    Dim oCreopath As String
    oCreopath = oSession.UISelectDirectory(oDirectorySelectionOptions)
    
    Dim session As IpfcBaseSession
    Set session = conn.session
    session.ChangeDirectory (oCreopath)

 

▷ 프로그램 동작 동영상

 

UI_SAVE.xlsm
0.02MB

 

 

 

IpfcSession#3 - UI로 작업 공간을 선택 하는 프로그램

■ IpfcSession.UISelectDirectory IpfcSession 클래스 ▶ Function UISelectDirectory를 사용하여 작업공간을 선택 하는 프로그램 Sub UI_WORK_FOLDER() Dim asynconn As New pfcls.CCpfcAsyncConnection Dim conn As pfcls.IpfcAsyncConnection Dim

tool-2020.tistory.com

 


영업 문의  : lionkk@idt21c.com