MianyVue/CAD_API_集成文档.md

223 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CAD 软件模型处理 API 集成文档
本文档详细说明了不同 CAD 软件Creo, Revit, PDMS在本项目中的 API 接入规范,包括基础配置、核心模型操作以及类似 Shrink Wrap几何优化轻量化功能的接口文档。请按照以下说明进行前后端集成。
---
## 1. Creo Parametric
- **CAD 软件名称**: Creo Parametric (版本 9.0)
- **Base URL**: `http://localhost:12345`
- **端口**: `12345`
### 1.0. 插件可用性探活 API (Health Check)
- **接口路径**: `/api/health` (或 `/api/status`)
- **请求方式**: `GET`
- **基础描述**: 用于队列执行前快速判活,检测 Creo 插件是否正常启动并可以接收任务,减少无效重试。
- **接入说明**:
- **请求参数**: 无
- **响应格式**:
```json
{
"status": "success",
"message": "Creo 插件在线就绪",
"data": {
"isBusy": false // 是否正忙于处理其他任务
}
}
```
- **异常响应**: 如插件未启动、断联或崩溃,通常表现为连接超时或 HTTP 50x 错误。
### 1.1. 打开模型 API
- **接口路径**: `/api/model/open`
- **请求方式**: `POST`
- **基础描述**: 在 Creo 软件中加载指定的模型文件。
- **接入说明**:
- **请求头**: `Content-Type: application/json`
- **请求体 (Body)**:
```json
{
"filePath": "C:\\path\\to\\your\\model.prt" // 字符串,必须是绝对路径
}
```
- **响应格式**:
```json
{
"status": "success", // 或 "error"
"message": "模型加载成功",
"data": null
}
```
- **常见错误**: 若路劲不存在或 Creo 实例未启动status 会返回 error。
### 1.2. 几何优化分析 API (类似 Shrink Wrap 功能)
- **接口路径**: `/api/creo/shrinkwrap/shell` (及 `/api/analysis/shell-analysis`)
- **请求方式**: `POST`
- **基础描述**: 对打开的模型执行几何外壳提取或包络处理,用于轻量化。
- **接入说明**:
- **请求头**: `Content-Type: application/json`
- **请求体 (Body - 参数示例)**:
```json
{
"method": "outer_shell", // 提取方法:外壳
"quality": 5, // 提取质量 (1-10)
"chord_height": 0.15, // 弦高公差
"fill_holes": false, // 是否填充孔洞
"ignore_small_surfaces": false, // 是否忽略小曲面
"output_type": "solid_surface" // 输出类型
}
```
- **响应格式**:
```json
{
"status": "success",
"message": "几何优化完成",
"data": {
"output_file": "C:\\path\\to\\optimized_model.prt"
}
}
```
### 1.3. 关闭模型 API
- **接口路径**: `[占位待实现] /api/model/close`
- **请求方式**: `POST`
- **基础描述**: 关闭当前在 Cero 中处于激活状态的模型,释放内存。
- **接入说明**:
- 当前后端尚未提供明确的单独关闭接口。
- **未来预期请求体**:
```json
{
"clearMemory": true // 是否连带清除缓存
}
```
---
## 2. Revit
- **CAD 软件名称**: Revit (版本 2024)
- **Base URL**: `http://localhost:9000`
- **端口**: `9000`
### 2.0. 插件可用性探活 API (Health Check)
- **接口路径**: `/api/health` (或 `/api/status`)
- **请求方式**: `GET`
- **基础描述**: 用于队列执行前快速判活,检测 Revit 插件是否正常启动并可以接收任务,减少无效重试。
- **接入说明**:
- **请求参数**: 无
- **响应格式**:
```json
{
"status": "success",
"message": "Revit 插件在线就绪",
"data": {
"isBusy": false
}
}
```
- **异常响应**: 如插件未启动、断联或崩溃,通常表现为连接超时或 HTTP 50x 错误。
### 2.1. 打开模型 API
- **接口路径**: `/api/open`
- **请求方式**: `POST`
- **基础描述**: 打开指定的 Revit 项目文件 (.rvt)。
- **接入说明**:
- **请求格式**: `application/json`
- **请求体 (Body)**:
```json
{
"filePath": "C:\\path\\to\\project.rvt"
}
```
### 2.2. 轻量化提取外壳 API (类似 Shrink Wrap 功能)
- **接口路径**: `/api/shell/analyze` (提取分析) / `/api/shell/execute` (执行处理)
- **请求方式**: `POST`
- **基础描述**: 分析 Revit 建筑模型并剥离内部不需要的实体细节。
- **接入说明**:
- **请求体 (Body)**:
```json
{
"detailLevel": "coarse", // 粗略级别
"removeInternal": true // 是否移除内部构件
}
```
- **响应格式**:
```json
{
"status": "success",
"data": {
"taskId": "task-123456" // 大模型处理可能较慢,建议通过 /api/task 轮询进度
}
}
```
### 2.3. 关闭模型 API
- **接口路径**: `[占位待实现] /api/close`
- **请求方式**: `POST`
- **基础描述**: 关闭 Revit 当前工程并释放资源。
- **接入说明**:
- 当前未列出明确接口,前端可作为占位按钮。
---
## 3. PDMS
- **CAD 软件名称**: PDMS (版本 12.1)
- **Base URL**: `http://localhost:9001`
- **端口**: `9001`
### 3.0. 插件可用性探活 API (Health Check)
- **接口路径**: `/api/health` (或 `/api/status`)
- **请求方式**: `GET`
- **基础描述**: 用于队列执行前快速判活,检测 PDMS 插件是否正常启动并可以接收任务,减少无效重试。
- **接入说明**:
- **请求参数**: 无
- **响应格式**:
```json
{
"status": "success",
"message": "PDMS 插件在线就绪",
"data": {
"isBusy": false
}
}
```
- **异常响应**: 如插件未启动、断联或崩溃,通常表现为连接超时或 HTTP 50x 错误。
### 3.1. 打开模型 API
- **接口路径**: `/api/project/open` (打开工程) / `/api/mdb/open` (打开 MDB 数据库)
- **请求方式**: `POST`
- **基础描述**: 载入 PDMS 的工程或特定 MDB 库。
- **接入说明**:
- **请求体 (Body)**:
```json
{
"projectName": "SAM",
"username": "SYSTEM",
"password": "XXXXXX",
"systemName": "CATA"
}
```
### 3.2. 模型简化与包裹 API (类似 Shrink Wrap 功能)
- **接口路径**: `/api/model/shrinkwrap` (包裹) / `/api/model/simplify` (参数化简化)
- **请求方式**: `POST`
- **基础描述**: 将复杂的管道、设备利用包围盒或简化几何进行替代。
- **接入说明**:
- **请求体 (Body) - Simplify 示例**:
```json
{
"targetElements": ["/EQUIP-1", "/PIPE-2"],
"simplifyMethod": "bounding_box"
}
```
- **响应**: 处理成功后通常会通过 WebSocket 推送更新或直接返回简化的模型状态数据。
### 3.3. 关闭模型 API
- **接口路径**: `[占位待实现] /api/project/close`
- **请求方式**: `POST`
- **基础描述**: 退出工程并回收当前资源。
- **接入说明**:
- 占位状态,开发集成时需要确保该请求不会导致整个 PDMS 进程意外崩溃。