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

IpfcModel :Property Origin

ToolBOX01 2025. 11. 11. 17:37
반응형

◎ Property Origin as String

 현재 Creo Parametric 세션에 로드된 모델 파일의 원본 위치(Location of the origin of the model)를 나타내는 문자열을 반환합니다.

반환 값:

일반적으로 모델이 열린 전체 경로(Full Path)를 반환합니다. 이 경로는 로컬 디스크, 네트워크 경로, 또는 Windchill/PDM 시스템 내의 워크스페이스 경로 등이 될 수 있습니다.

  • 예시: "C:\Users\YourName\CreoFiles\ProjectA\PartXYZ.prt"

제한 사항 및 예외

 

  • OTK 사용자만 지원: PropertyOrigin 속성은 Multi-CAD 모델의 원본 정보를 조회할 때 오직 C++ 기반의 OTK 환경에서만 정상적으로 지원됩니다.
  • 다른 API에서는 예외 발생: VBA나 J-Link (Java 기반 API)와 같은 OTK 외부의 API에서 Multi-CAD를 통해 생성된 모델에 대해 이 PropertyOrigin 속성을 호출하면, 시스템은 이 기능이 해당 툴킷에서 지원되지 않는다는 의미로 XToolkitUnsupported 예외(Exception)를 발생시킵니다.

💻 Sample Code : 

현재 세션에 로드된 모든 모델을 반복하며 PropertyOrigin 속성을 사용하여 원본 경로를 출력하고, Multi-CAD 모델에 대한 잠재적인 오류를 처리하는 방법을 보여줍니다.

' VBA 환경 (예: Excel, Creo 내부 매크로)에서 실행되는 모듈

Sub DisplayModelOrigin()

    ' Creo API 연결 설정
    Dim AsynConn As New pfcls.CCpfcAsyncConnection
    Dim Conn As pfcls.IpfcAsyncConnection
    Dim Session As pfcls.IpfcBaseSession
    
    ' 모델 리스트 및 개별 모델 객체
    Dim ModelList As pfcls.IpfcModels
    Dim CurrentModel As pfcls.IpfcModel
    
    ' Creo Parametric 세션에 연결
    On Error GoTo ErrorHandler
    Set Conn = AsynConn.Connect("", "", "", 5)
    Set Session = Conn.Session
    
    ' 세션에 로드된 모든 모델 리스트 가져오기
    Set ModelList = Session.ListModels(pfcls.pfcModelType.pfcMDL_ANY)
    
    If ModelList.Count = 0 Then
        MsgBox "현재 세션에 로드된 모델이 없습니다.", vbExclamation
        GoTo CleanUp
    End If
    
    Debug.Print "--- Creo 세션 모델 원본 경로 목록 ---"
    
    ' 모든 모델을 순회
    For Each CurrentModel In ModelList
        
        Dim ModelName As String
        Dim ModelOrigin As String
        
        ModelName = CurrentModel.FileName
        
        ' 🚩 PropertyOrigin 속성 사용 및 예외 처리
        On Error Resume Next ' 예외가 발생해도 다음 코드로 진행
        
        ModelOrigin = CurrentModel.PropertyOrigin
        
        If Err.Number <> 0 Then
            ' XToolkitUnsupported 예외 또는 기타 에러 발생 시 처리
            Debug.Print "모델 이름: " & ModelName
            Debug.Print "원본 경로: [Multi-CAD 모델이거나 OTK 외부에서 지원되지 않음: " & Err.Description & "]"
            Err.Clear ' 에러 플래그 초기화
        Else
            ' 정상적으로 원본 경로를 가져온 경우
            Debug.Print "모델 이름: " & ModelName
            Debug.Print "원본 경로: " & ModelOrigin
        End If
        
        On Error GoTo ErrorHandler ' 에러 처리 루틴 복구
        
    Next CurrentModel

CleanUp:
    Debug.Print "--------------------------------------"
    If Not Conn Is Nothing Then
        Conn.Disconnect
    End If
    Exit Sub

ErrorHandler:
    MsgBox "치명적인 에러가 발생했습니다: " & Err.Description, vbCritical
    Resume CleanUp

End Sub

 

 

 

  • 원본 위치 추적 (Source Tracking): 모델의 원본 파일 경로를 파악하여 해당 모델이 로컬 경로에서 열렸는지, 아니면 특정 PDM/Windchill 워크스페이스에서 열렸는지 정확하게 식별할 수 있습니다. 이는 데이터 관리 및 PDM 시스템과의 통합 로직을 구현하는 데 필수적입니다.
  • Multi-CAD 모델 필터링: 자동화 루틴이 파일 경로를 기반으로 Multi-CAD 모델인지 아닌지 (경로 문자열의 특정 패턴 또는 파일 확장자를 통해) 간접적으로 추론할 수 있으며, 이 속성으로 Multi-CAD 모델의 처리를 제어하는 로직을 추가하여 XToolkitUnsupported 예외 발생을 사전에 방지할 수 있습니다.
  • 버전 관리 및 백업: 원본 경로를 기준으로 파일을 복사하거나 백업하는 스크립트를 작성하여 모델 관리 프로세스를 자동화할 수 있습니다.

 

by korealionkk@gmail.com


 

 

반응형