본문 바로가기
  • Welcome!
VBA, VB.NET For Creo

IpfcBaseSession.RetrieveModel

by ToolBOX01 2025. 1. 19.
반응형

□ 소개

지정된 모델 설명자를 사용하여 Creo Parametric 세션에서 모델을 검색합니다. 모델은 표준 디렉토리에서만 검색되며, 검색된 모델은 세션 내에서 사용할 수 있지만 화면에 표시되지는 않습니다. 검색 과정에서 모델이 발견되지 않거나 접근 권한이 없는 경우 예외가 발생합니다. Session에서 Creo 모델을 가져옵니다.

▷ Exceptions thrown (but not limited to):

  • IpfcXToolkitNotFound - The model was not found in the current directory.
  • IpfcXToolkitNoPermission - The function does not have permission to operate on this model

□ IpfcBaseSession.RetrieveModel

Function RetrieveModel (MdlDescr as IpfcModelDescriptor) as IpfcModel

 

 

IpfcModelDescriptor

□ IpfcModelDescriptor 함수 소개Creo 모델이나 파일을 식별하기 위한 정보를 포함하고 있으며, 주로 세션에 로드되지 않은 모델을 참조하거나 조작할 때 사용됩니다.▷ 기본 기능IpfcModelDescriptor는 Cre

tool-2020.tistory.com

 

▷IpfcModelDescriptor

Creo Parametric 환경에서 모델에 대한 정보를 담고 있는 인터페이스입니다. 마치 책의 목차나 건물의 설계도면처럼, 모델의 구조와 속성에 대한 상세한 정보를 제공합니다.

1. IpfcModelDescriptor가 하는 일

  • 모델 식별: 모델의 고유한 이름, 유형, 버전 등을 저장합니다.
  • 모델 구성 요소: 모델을 구성하는 부품, 어셈블리, 도면 등의 정보를 관리합니다.
  • 모델 속성: 모델의 크기, 재질, 색상 등 다양한 속성을 저장합니다.
  • 모델 관계: 다른 모델과의 관계 (예: 부품 간의 조립 관계)를 정의합니다.

2. IpfcModelDescriptor와 CCpfcModelDescriptor의 차이점

3D 모델을 만들 때, 모델에 대한 정보를 저장해야 합니다. 이 정보를 저장하기 위해 IpfcModelDescriptor라는 것을 사용합니다. IpfcModelDescriptor 는 모델의 이름, 종류, 크기, 재질 등 다양한 정보를 담고 있습니다.

CCpfcModelDescriptor 클래스는 이러한 모델 디스크립터를 만들기 위한 기본적인 틀을 제공하는 클래스입니다. 이 클래스를 사용하면 우리가 원하는 형태의 모델 디스크립터를 만들 수 있습니다.


□ Code : Open a Creo Part file in a session

Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection
Dim BaseSession As pfcls.IpfcBaseSession
Dim CreateModelDescriptor As New CCpfcModelDescriptor
Dim ModelDescriptor As pfcls.IpfcModelDescriptor
Dim CreoModelName As string
Dim Window As pfcls.IpfcWindow

CreoModelName = "koread.prt"
Set conn = asynconn.Connect(Null, Null, Null, Null)
Set BaseSession = conn.Session
Set ModelDescriptor = CreateModelDescriptor.CreateFromFileName(CreoModelNam)
Set Model = BaseSession.RetrieveModel(oModelDescriptor)  '// Loading a model with a session

'//Create a new window which displays the Creo Model
Set Window = BaseSession.OpenFile(ModelDescriptor)
 
'//Activate the new window
Window.Activate
 
'//Show the name of the Creo Model in a messagebox
MsgBox "Model name = " & oModel.Filename

IpfcModelDescriptor.FileVersion = 3    (korea.prt.3)
IpfcModelDescriptor.Path = "C:\TEMP\search.pro"

Test Code :

Function LoadCreoModel(ByVal ModelName As String) As pfcls.IpfcWindow

  On Error GoTo HandleError

  Dim CreateModelDescriptor As New CCpfcModelDescriptor
  Dim ModelDescriptor As pfcls.IpfcModelDescriptor
  Dim Window As pfcls.IpfcWindow
    
  Set ModelDescriptor = CreateModelDescriptor.CreateFromFileName(ModelName)
  Set Model = BaseSession.RetrieveModel(ModelDescriptor)
  Set Window = BaseSession.OpenFile(ModelDescriptor)
  Window.Activate

  Exit Function

HandleError:
  MsgBox "Error loading model: " & Err.Description, vbCritical
  Set LoadCreoModel = Nothing
  
End Function