업무 자동화/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

반응형