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

CREO VBA API 란?

by ToolBOX01 2024. 10. 1.
반응형

Creo Parametric에서 제공하는 프로그래밍 인터페이스입니다. Creo 의 다양한 기능들을 Excel VBA와 같은 프로그래밍 언어를 통해 자동화하고 제어할 수 있도록 해주는 도구 입니다.

□ Creo VBA API 필요성

  • 자동화: 반복적인 작업을 자동화하여 시간과 노력을 절약할 수 있습니다. 예를 들어, 모델의 특정 부분을 반복적으로 수정하거나, 많은 수의 모델에 동일한 작업을 적용하는 경우 VBA를 통해 자동화할 수 있습니다.
  • 맞춤형 기능 개발: CREO에서 기본적으로 제공하지 않는 기능을 직접 개발하여 활용할 수 있습니다.
  • 데이터 연동: Excel 등 다른 프로그램과의 데이터 연동을 통해 설계 데이터를 관리하고 분석할 수 있습니다.

□ Class,  Property, sub, Function

 

Interface :

객체지향 프로그래밍(OOP)에서 Interface는 특정 클래스가 반드시 구현해야 하는 메서드와 속성의 집합을 정의한 것입니다. 즉, 일종의 계약이라고 할 수 있습니다.  Interface는  레시피 책과 같다고 생각해 볼까요? 레시피 책에는 어떤 음식을 만들기 위해 필요한 재료와 순서가 자세히 적혀있습니다. 마찬가지로, 인터페이스는 어떤 기능을 구현하기 위해 필요한 메서드(함수) 목록을 정의해 놓은 것입니다. Interface를 상속받은 클래스는 Interface에서 정의된 모든 메서드를 반드시 구현해야 합니다. 상속은 부모에게서 자식이 물려받는 것을 의미합니다. 만약 어떤 클래스(요리사)가 특정 인터페이스(레시피 책)를 상속받았다면, 그 클래스는 그 레시피 책에 있는 모든 메서드(요리법)를 반드시 따라야 합니다. 즉, 레시피 책에 있는 모든 요리를 만들 수 있어야 한다는 뜻입니다.

See Also :

특정 클래스, 메서드 또는 속성에 대한 설명에서 자주 등장하는 부분으로, "참고" 또는 "같이 보기" 정도로 번역할 수 있습니다. 이 섹션에서는 현재 보고 있는 항목과 밀접한 관련이 있는 다른 항목들을 제시합니다. 즉, 현재 보고 있는 내용을 더 잘 이해하거나 관련된 작업을 수행하기 위해 참고해야 할 다른 정보들을 알려주는 것입니다.

Direct Parent Classes:

해당 클래스의 바로 위에 있는 부모 클래스들을 의미합니다. 즉, 해당 클래스가 상속받는 직접적인 부모 클래스들을 나타냅니다.

Direct Known Subclasses:

특정 클래스를 직접 상속받는 모든 클래스를 의미합니다. 즉, 어떤 클래스를 기반으로 만들어진 모든 자식 클래스들을 말합니다.

Property :

VBA에서 Property(속성)은 객체(Object)가 가지고 있는 특징이나 상태를 나타내는 값이라고 생각하시면 됩니다. 마치 사람이 키, 몸무게, 나이와 같은 고유한 속성을 가지고 있듯이, VBA에서 사용하는 각 객체들도 자신만의 속성을 가지고 있는 것입니다.

▷ Property의 특징

  • 읽기 및 쓰기: 속성의 값을 읽어오거나 변경할 수 있습니다.
  • 값을 반환: 속성에 접근하면 해당 속성의 값을 반환합니다.
  • 객체에 대한 정보 제공: 객체의 현재 상태나 특성에 대한 정보를 제공합니다.
  • 객체를 조작하는 수단: 속성의 값을 변경하여 객체의 상태를 변경할 수 있습니다.

 

Method :
VBA에서 Method(메서드)는 객체(Object)가 수행할 수 있는 동작이나 행위를 의미합니다.
쉽게 말해, Method는 객체에게 "무엇을 해라"라고 명령하는 것이라고 생각하시면 됩니다.

Method의 특징

  • 동작 수행: 객체에게 특정 작업을 수행하도록 지시합니다.
  • 인수: Method를 호출할 때 필요한 추가적인 정보를 전달할 수 있습니다.
  • 결과 반환: 일부 Method는 작업 결과를 반환하기도 합니다.

1) sub

  • 독립적인 프로시저로, 특정 객체에 직접 연결되어 있지 않습니다.
  • 일련의 작업을 수행하는 절차를 정의합니다.
  • 값을 반환하지 않습니다.

 

2) Function

  • 독립적인 프로시저로, 특정 작업을 수행하고 그 결과를 값으로 반환하는 역할을 합니다.
  • 호출되어 값을 받아올 수 있습니다. (예: MyFunction(10, 20))
  • 객체에 직접 연결되지 않아도 됩니다.

현재 Open된 모델 이름 표시 하는 프로시저 (프로그램)

Option Explicit
Public asynconn As New pfcls.CCpfcAsyncConnection
Public conn As pfcls.IpfcAsyncConnection
Public BaseSession As pfcls.IpfcBaseSession
Public model As pfcls.IpfcModel
Public Sub CreoConnt01()
     
     '// connect creo model
     Set conn = asynconn.Connect("", "", ".", 5)
     Set BaseSession = conn.Session
     Set model = BaseSession.CurrentModel
     
    '// creo model connection check
     If model Is Nothing Then
        MsgBox "There are No Active Creo Models", vbInformation, "korealionkk@gmail.com"
        Exit Sub
     End If
               
End Sub

 

 IpfcAsyncConnection 클래스 : 

이 클래스는 Creo Parametric에 대한 비동기 연결을 나타냅니다. 비동기 처리란? 일반적으로 프로그램은 순차적으로 명령을 실행합니다. 즉, 한 작업이 끝나야 다음 작업을 시작합니다. 하지만 비동기 처리 방식은 한 작업이 완료되기를 기다리지 않고, 다른 작업을 병렬적으로 처리하는 방식입니다.

IpfcBaseSession 클래스 : 

이 클래스는 Creo Parametric 세션에 대한 정보를 정의합니다.

IpfcBaseSession은 IpfcSession의 "Direct Parent Classes" 입니다.

Dim BaseSession AS IpfcBaseSession
Dim Session AS IpfcSession
SET Session = BaseSession 으로 정의 가능 합니다

 

IpfcModel 클래스 :

이 클래스는 현재 세션 중인 모델에 대한 정보를 지정합니다. 속성 Revision, Version, Branch 및 ReleaseLevel은 데이터 관리 애플리케이션에 사용됩니다. 속성 FullName, GenericName, InstanceName 및 Type은 모델 설명자 Descr의 해당 속성과 동일한 값을 갖습니다.

IpfcBaseSession 클래스의 Method(함수)의 " Function - CurrentModel" 의 값을 받아 IpfcModel 클래스에 반환 합니다.