업무 자동화/VBA, VB.NET For Creo
IpfcModel : Sub Rename()
ToolBOX01
2025. 11. 15. 08:16
반응형
현재 Creo 세션에 로드된 모델의 이름을 변경하는 데 사용됩니다. 현재 활성 모델의 이름을 새로운 이름으로 변경합니다.
매개변수 :
NewName (String) : 모델에 적용할 새로운 이름을 지정합니다. (확장자(.PRT, .ASM, .DRW)를 제외한 파일 이름만 입력)
RenameFilesToo (Boolean, Optional) : 파일 자체를 디스크에서 함께 변경할지 여부를 지정하지만, API 설명에 따르면 현재 버전에서는 무시되고 기본값은 false로 작동합니다. 즉, 이 함수는 주로 세션 내 모델의 메모리 이름을 변경하는 데 중점을 둡니다.
🛠️ 사용 시나리오
이 함수를 사용하여 모델의 이름을 변경하는 작업은 주로 다음과 같은 경우에 사용됩니다.
- 세션 내 이름 변경: 현재 Creo 메모리에 로드된 모델 객체의 내부 이름을 변경할 때 사용됩니다. 이는 Creo의 "파일 > 이름 변경(Rename)" 기능과 유사합니다.
- 가상 이름 지정: 파일을 디스크에 저장하기 전에 임시로 다른 이름으로 작업할 때 사용될 수 있습니다.
- 파일 이름과 별도 관리: RenameFilesToo가 무시되므로, 모델을 새 이름으로 저장하려면 이 함수 호출 후 별도로 Sub Save() 함수 등을 사용하여 다른 이름으로 저장(Save As)해야 합니다.
🚨예외 처리
1) IpfcXToolkitBadContext:
발생 이유: 이 함수가 디자인 테스트 모드(Design Test Mode)에서는 사용할 수 없음을 나타냅니다. Creo의 특정 환경 또는 모드에서는 이름 변경과 같은 모델 조작 기능이 제한될 수 있습니다.
2) IpfcXToolkitUnsupported:
발생 이유: 현재 버전의 API에서 지원되지 않는 모델 유형에 대해 함수를 호출했을 때 발생합니다. 예시로 Multi-CAD 모델 접근 방식에서 가져온 모델은 지원되지 않을 수 있습니다.
💻 Sample code
Dim session As pfcls.IpfcBaseSession
Dim currentModel As pfcls.IpfcModel
Dim newModelName As String
'// 현재 활성 모델 가져오기 //'
Set currentModel = session.CurrentModel
'// 새 이름 정의 //'
'// 모델 이름만 입력 (확장자 제외) //'
newModelName = "RENAMED_PART_" & Format(Now, "hhmmss")
'// 모델 이름 변경 시도 //'
MsgBox "모델 '" & currentModel.FileName & "'의 이름을 '" & newModelName & "'으로 변경합니다.", vbInformation
'// RenameFilesToo 매개변수는 무시되지만 명시적으로 False를 전달 //'
currentModel.Rename newModelName, False
MsgBox "모델 이름이 메모리에서 성공적으로 변경되었습니다. 새 이름: " & currentModel.FileName, vbInformation
by korealionkk@ gmail.com

반응형