반응형
Creo VBA API는 PTC의 3D CAD 소프트웨어인 Creo Parametric을 Microsoft Excel이나 Access 같은 Office 프로그램에서 제어할 수 있도록 해주는 프로그래밍 인터페이스입니다.
엑셀(Excel)이라는 시트와 Creo(CAD)라는 도면 사이의 통로를 만들어 주는 도구
1. 주요 특징 및 작동 원리
|
|
▶ COM의 핵심 매커니즘: 클라이언트와 서버
COM 기반의 통신은 보통 "손님(Client)과 서비스 제공자(Server)"의 관계로 이루어집니다.
- COM 서버 (Service Provider): 자신의 기능을 외부에 빌려주는 프로그램입니다. (예: Creo) "나는 치수 변경 기능과 파일 저장 기능을 빌려줄 준비가 됐어!"라고 윈도우 시스템에 자신을 등록합니다.
- COM 클라이언트 (Consumer): 서버의 기능을 호출하는 프로그램입니다. (예: Excel VBA) "Creo야, 내가 엑셀에 적어둔 치수대로 모델을 수정해줘!"라고 명령을 내립니다.
2. Creo VBA 장점 (Pros)
- 진입 장벽이 낮음: 설계자들에게 친숙한 엑셀 기반이라 새로 언어를 배우는 부담이 적습니다.
- UI 개발의 용이성: 엑셀의 '사용자 정의 폼'이나 '셀' 자체를 입력창으로 쓸 수 있어, 화려하진 않지만 실용적인 GUI(사용자 인터페이스)를 매우 빠르게 만들 수 있습니다.
- 무료 라이선스: C++(Toolkit)이나 Java(J-Link) API는 별도의 유료 라이선스가 필요한 경우가 많지만, VBA API는 Creo 기본 패키지에 포함되어 있어 추가 비용이 들지 않습니다.
- 강력한 문서화 연동: 설계 결과(치수, 무게, BOM)를 즉시 엑셀 보고서로 생성하거나, 반대로 엑셀의 사양표를 읽어와 수천 개의 모델을 자동으로 일괄 변경하는 작업에 최적화되어 있습니다.
3. Creo VBA 단점 (Cons)
- 실행 속도: 프로세스 외부에서 명령을 전달하는 방식(Async)이므로, 수만 개의 객체를 하나하나 제어하는 복잡한 연산에서는 C++ 기반의 Toolkit보다 속도가 느립니다.
- 기능의 제한: Creo의 모든 기능을 100% 제어할 수 있는 Toolkit에 비해, VBA API는 약 70~80% 정도의 기능(주로 모델 수정, 매개변수 제어, 파일 관리 등)만 지원합니다.
- 안정성: 대규모 복잡한 어셈블리를 제어할 때 가끔 통신 오류가 발생하거나 Creo가 비정상 종료되는 경우가 발생할 수 있습니다.
- 배포의 한계: 엑셀 파일 형태로 공유해야 하므로, 기업 규모의 대형 시스템으로 확장하기에는 보안이나 버전 관리 측면에서 제약이 있습니다.
- 기타 : 백그라운드 프로그램 개발 불가, 즉 Creo가 실행된 상태에서만 동작 합니다
▶ CREO VBA API 설치 및 설정
Setting up the VBA API 환경 설정
■ VBA API 필요성반복적인 업무를 프로그램으로 처리하여, 좀더 생산적이고, 부가 가치가 높은 업무에 노력을 투입하십시요Creo는 다양한 개발 도구를 제공 합니다. Pro/program, VB, VBA, JAVA, C## API
tool-2020.tistory.com
위 블로그 내용은 Creo 9.0 버전을 기준으로 설명하였습니다. Creo 버전에 따라 변동 사항이 있을수 있습니다.
▶ pro_comm_msg.exe 의 역활
pro_comm_msg.exe는 외부 자동화 프로그램(VBA 등)과 Creo CAD를 연결해주는 통신 전용 메신저입니다.
1. 프로세스 간 통신(IPC)의 교량 역할
|
|
2. 자동화 설계(API) 필수 요소
|
|
3. 시스템 구성 요소
|
|

by korealionkk@gmail.com
반응형
'업무 자동화 > VBA, VB.NET For Creo' 카테고리의 다른 글
| 초보자를 위해 . . . . . Creo VBA API 설정 추가 자료 (0) | 2026.04.30 |
|---|---|
| 초보자를 위해 . . . . . session (1) | 2026.04.26 |
| 초보자를 위해 . . . . . (0) | 2026.04.26 |
| 메세지 창에 현재 작업 폴더 표시 하기 (0) | 2026.01.07 |
| 모델의 요소를 가져오는 순서 (The order in which the model's elements are retrieved) (0) | 2025.12.05 |