daiemon12/catia-v5-mcp-server
요약
Model Context Protocol(MCP)을 사용하여 Claude AI를 CATIA V5 CAD 소프트웨어와 연결하는 오픈 소스 서버입니다. 자연어 명령을 통해 2D 스케치, 파트 디자인, 어셈블리 제어 및 다양한 파일 내보내기 작업을 수행할 수 있습니다.
핵심 포인트
- Claude를 통한 CATIA V5 CAD 모델링 제어 가능
- 50개 이상의 도구로 스케치, 디자인, 어셈블리 지원
- MCP 서버를 통한 자연어 기반의 CAD 자동화 구현
- Python 및 Windows COM 자동화 기반 동작
Model Context Protocol (MCP)를 통해 Claude AI를 Dassault Systemes CATIA V5에 연결하세요.
CATIA V5를 위한 최초의 오픈 소스 MCP 서버입니다. Claude Desktop 또는 Claude Code에서 자연어를 사용하여 CATIA V5 CAD 모델링을 제어할 수 있습니다.
이 MCP 서버는 Claude가 다음 작업을 수행할 수 있도록 **50개 이상의 도구 (tools)**를 제공합니다:
문서 생성 및 관리— 새로운 Part, Product (어셈블리), 열기, 저장, 닫기
2D 스케치 (2D Sketching)— 선, 사각형, 원, 호, 스플라인, 점, 구속 조건 (constraints)
파트 디자인 (Part Design)— Pad, Pocket, Shaft, Groove, Fillet, Chamfer, Hole, Shell, Draft, Thickness, 패턴 (직사각형/원형), Mirror
어셈블리 (Assembly)— 구성 요소 추가, Fix/Coincidence/Offset/Angle 구속 조건, 이동/회전
측정 (Measurement)— 거리, 관성 (inertia), 경계 상자 (bounding box), 파라미터 (parameters)
내보내기 (Export)— STEP, IGES, STL, 3DXML, VRML, 스크린샷
뷰 제어 (View control)— 표준 뷰 설정, 전체 맞춤 (fit all), 스크린샷 캡처
Windows(COM 자동화는 Windows 전용)
CATIA V5 설치 및 라이선스 보유 (R2016+)
Python 3.10+
Claude Desktop 또는 Claude Code
git clone https://github.com/daiemon12/catia-v5-mcp-server.git
cd catia-v5-mcp-server
bash setup.sh
이 스크립트가 의존성 (dependencies), Claude Desktop 설정 및 검증 등 모든 과정을 처리합니다.
git clone https://github.com/daiemon12/catia-v5-mcp-server.git
cd catia-v5-mcp-server
pip install -e .
또는 수동으로:
pip install mcp pywin32
Claude Desktop 설정 파일을 편집하세요:
-
Windows:
%APPDATA%\Claude\claude_desktop_config.json -
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
서버를 추가하세요:
{
"mcpServers": {
"catia-v5": {
...
또는 절대 경로를 사용하여:
{
"mcpServers": {
"catia-v5": {
...
claude mcp add catia-v5 python -- -m catia_mcp
Claude에게 상호작용을 요청하기 전에 CATIA V5가 실행 중인지 확인하세요. 서버는 실행 중인 인스턴스에 자동으로 연결됩니다.
CATIA V5가 실행 중이지 않은 경우, 서버는 실행을 시도합니다 (CATIA가 COM 서버로 등록되어 있어야 합니다: cnext.exe /regserver).
설정이 완료되면, 그냥 Claude에게 말을 거세요:
"새로운 CATIA Part를 생성해줘. XY 평면의 원점에 중심을 둔 100x60mm 직사각형을 그리고, 이를 40mm 두께로 돌출(Extrude)시켜줘."
"마운팅 브래킷(Mounting bracket)을 설계해줘: 120x80mm 크기에 두께 5mm인 베이스 플레이트(Base plate)로 시작해. 모서리에 10mm의 가장자리 거리(Edge distance)를 두고 4개의 M6 마운팅 홀(Mounting holes)을 추가해줘. 그다음 높이 30mm의 수직 리브(Ribs) 두 개를 추가해줘."
"활성화된 Part의 모든 파라미터(Parameters)를 보여줘. 그다음 패드(Pad) 높이를 60mm로 변경해줘."
"현재 Part를 C:/export/bracket.stp 경로에 STEP 형식으로 내보내고, 등각 투영 뷰(Isometric view)를 스크린샷으로 찍어줘."
"새로운 어셈블리(Assembly)를 생성해줘. C:/parts/bracket.CATPart에 있는 브래킷과 C:/parts/base.CATPart에 있는 베이스를 추가해. 베이스를 고정(Fix)한 다음, 두 객체 사이에 일치 구속 조건(Coincidence constraint)을 생성해줘."
catia-v5-mcp-server/
├── catia_mcp/
│ ├── __init__.py
...
Claude (Desktop/Code)
│
│ stdio (MCP JSON-RPC)
...
- Claude는 stdio를 통해 MCP 도구 호출(Tool calls)을 보냅니다.
- 서버는 각 호출을 적절한 도구 모듈(Tool module)로 라우팅합니다.
- 각 도구 모듈은
win32com.client를 사용하여 COM을 통해 CATIA V5를 제어합니다. - 결과(JSON, 텍스트)는 Claude로 반환됩니다.
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_connect | CATIA V5에 연결 |
catia_disconnect | CATIA V5 연결 해제 |
catia_new_part | 새로운 Part 문서 생성 |
catia_new_product | 새로운 Product (어셈블리) 생성 |
catia_open_document | 기존 문서 열기 |
catia_save_document | 저장 / 다른 이름으로 저장 |
catia_close_document | 활성 문서 닫기 |
catia_list_documents | 열려 있는 모든 문서 목록 표시 |
catia_get_active_document_info | 활성 문서에 대한 상세 정보 가져오기 |
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_create_sketch | XY/YZ/ZX 평면에 스케치 (Sketch) 생성 |
catia_close_sketch | 스케치 종료 및 파트 디자인 (Part Design)으로 복귀 |
catia_sketch_line | 선 (Line) 그리기 |
catia_sketch_rectangle | 사각형 (Rectangle) 그리기 (2개의 모서리 사용) |
catia_sketch_centered_rectangle | 중심 사각형 (Centered Rectangle) 그리기 |
catia_sketch_circle | 원 (Circle) 그리기 |
catia_sketch_arc | 호 (Arc) 그리기 |
catia_sketch_spline | 점들을 통과하는 스플라인 (Spline) 그리기 |
catia_sketch_point | 점 (Point) 생성 |
catia_sketch_constraint | 치수/기하학적 구속 조건 (Constraint) 추가 |
catia_sketch_get_geometry | 스케치 기하 요소 (Geometry elements) 목록 표시 |
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_pad | 패드 (Pad, 돌출) |
catia_pocket | 포켓 (Pocket, 절삭 돌출) |
catia_shaft | 샤프트 (Shaft, 회전) |
catia_groove | 그루브 (Groove, 회전 절삭) |
catia_fillet | 필렛 (Fillet, 모서리 라운딩) |
catia_chamfer | 모따기 (Chamfer, 모서리 베벨) |
catia_hole | 구멍 (Hole) (단순, 카운터보어, 카운터싱크) |
catia_rect_pattern | 직사각형 패턴 (Rectangular pattern) |
catia_circ_pattern | 원형 패턴 (Circular pattern) |
catia_mirror | 평면에 대한 대칭 (Mirror) |
catia_shell | 쉘 (Shell, 내부 비우기) |
catia_draft | 구배 (Draft angle) |
catia_thickness | 두께 오프셋 (Thickness offset) |
catia_list_features | 바디 (Body) 내 피처 (Features) 목록 표시 |
catia_list_edges | 필렛/모따기용 모서리 (Edges) 목록 표시 |
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_add_component | 어셈블리 (Assembly)에 기존 파트 추가 |
catia_add_new_part | 어셈블리 (Assembly)에 새 파트 생성 |
catia_fix_constraint | 컴포넌트 (Component)를 제자리에 고정 |
catia_coincidence_constraint | 일치 구속 조건 (Coincidence constraint) |
catia_offset_constraint | 오프셋 구속 조건 (Offset constraint) |
catia_angle_constraint | 각도 구속 조건 (Angle constraint) |
catia_move_component | 컴포넌트 (Component) 이동/회전 |
catia_list_components | 어셈블리 컴포넌트 (Assembly components) 목록 표시 |
catia_list_constraints | 어셈블리 구속 조건 (Assembly constraints) 목록 표시 |
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_measure_distance | 요소 간의 거리 측정 (Measure distance between elements) |
catia_get_inertia | 부피, 면적, 질량, 무게 중심 (Volume, area, mass, center of gravity) |
catia_get_bounding_box | 경계 상자 치수 (Bounding box dimensions) |
catia_get_parameters | 모든 파라미터 목록 표시 (List all parameters) |
catia_set_parameter | 파라미터 값 수정 (Modify a parameter value) |
catia_update_part | 강제 재빌드 (Force rebuild) |
| 도구 (Tool) | 설명 (Description) |
|---|---|
catia_export | STEP/IGES/STL/3DXML/VRML로 내보내기 (Export to STEP/IGES/STL/3DXML/VRML) |
catia_screenshot | 3D 뷰를 이미지로 캡처 (Capture 3D view to image) |
catia_set_view | 뷰 방향 설정 (Set view orientation) |
catia_fit_all | 모든 요소를 뷰에 맞춤 (Fit all in view) |
pip install pywin32
이 서버는 Windows가 필요합니다. macOS 또는 Linux에서는 작동하지 않습니다.
- CATIA V5가 실행 중인지 확인하세요.
- CATIA를 COM 서버로 등록하세요: 다음 경로로 이동하여
C:\Program Files\Dassault Systemes\B<version>\<os>\code\bin\
cnext.exe /regserver를 실행하세요.
- 모달 대화 상자 (Modal dialog)가 CATIA를 차단하고 있지 않은지 확인하세요.
먼저 catia_new_part 또는 catia_open_document를 사용하여 문서를 생성하거나 여세요.
일부 측정 방법은 레이트 바인딩 (Late binding)에서 작동하지 않을 수 있습니다. 문제가 발생할 경우, 대안적인 백엔드 (Backend)로 pycatia를 사용해 보세요 (기여 환영).
이 프로젝트는 오픈 소스입니다. 기여를 환영합니다:
Wireframe & Surface (GSD) 도구
Drawing 도구 (2D 제도)
Knowledgeware (수식, 규칙, 검사)
pycatia backend (raw win32com의 대안)
Tests (COM 모킹 (Mocking) 사용)
3DEXPERIENCE CATIA 지원
MIT
Inspiration (영감을 준 곳):
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기