223 lines
6.9 KiB
Markdown
223 lines
6.9 KiB
Markdown
# 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 进程意外崩溃。
|