# OnebotCatalog 升级改制开发说明书

> 定位：在现有 OnebotCatalog 基础上**继续优化，不推翻重做**。
> 核心原则：保留「NX 母模 + 预生成 STEP」主线（用户的强项），新增「服务器轻量化 + TC 集成」两块。

---

## 一、升级项目清单（按优先级）

| # | 升级项目 | 现状 | 升级目标 | 优先级 |
|---|---|---|---|---|
| 1 | 网页 3D 轻量化 | 新迪查看器直渲 STEP（体积大、依赖 wasm） | 服务器 OCCT 转 **glTF** + Three.js 渲染 | ⭐ P0 |
| 2 | 服务器去 NX 化 | 非标按需生成需服务器装 NX（重、贵） | 服务器**不装 NX**，OCCT 当转换器 | ⭐ P0 |
| 3 | TC 母模数据源 | 母模存文件系统 + 人工 robocopy | 母模入 TC，管版本 / 发布状态 | P1 |
| 4 | 客户 TC 检入 | 无 | 客户选型后一键检入客户 TC | P2（有需求再做）|
| 5 | 增强功能 | 尺寸图用手册 PNG | 3D 标注 / 2D 尺寸 SVG / 工程图导出 | P3（可选）|

---

## 二、各升级项目开发步骤

### 升级 1：网页 3D 轻量化（OCCT 转换器）

```
NX 导出 STEP → 服务器 OCCT 服务 → 转 glTF → Three.js 网页秒开
```

1. 搭 OCCT 转换服务（Python + OCP，**已验证跑通**，见 `d:\source_code\occt_demo\`）
2. 提供接口：`POST /convert`（传 STEP → 返回 glTF/GLB）
3. 前端 Three.js 加载 glTF，替代/降级新迪查看器
4. 构建期**预生成** glTF（批量转，服务器存静态文件，网页直接读）

### 升级 2：服务器去 NX 化

1. **标准档位**：继续 NX 本机批量导出 STEP → 服务器只存文件（Nginx 即可）
2. **转换**：OCCT 服务负责 STEP→glTF（同升级 1，写一次通用）
3. **非标/任意参数**：分两条路
   - 规则件（气缸等）→ OCCT 程序化建模（可实时生成）
   - 复杂件 → NX 本机离线算好再传，服务器仍不装 NX

### 升级 3：TC 母模数据源

1. 母模检入 TC（Item + ItemRevision）
2. 定义「已发布」状态工作流（只有已发布母模才进目录）
3. 目录系统从 TC 拉「已发布」母模，替代人工 robocopy

### 升级 4：客户 TC 检入（CADENAS 级卖点，M4）

1. 用自有 TC 当测试环境，跑通 TC SOA API
2. 配置映射：ItemType / 属性映射 / 目标文件夹 / ID 回写
3. 实现选型 → 检入（单个 + 批量 + 失败重试 + 日志）

### 升级 5：增强功能（可选，按需）

- 3D 标注：Three.js + CSS2DRenderer + Raycaster（标签 / 面高亮）
- 2D 尺寸：参数化 SVG（替代手册 PNG）
- 工程图导出：OCCT HLR 投影 → PDF/SVG（DWG/DXF 需 ODA 商业库，单独评估）

---

## 三、建议实施顺序

```
第一步：升级 1+2（服务器轻量化）—— 收益最大、成本最低、已验证
第二步：升级 3（TC 母模）—— 规范数据管理，你已有 TC
第三步：升级 4（客户 TC 检入）—— 有 TC 大客户需求时再做
第四步：升级 5（增强功能）—— 按客户反馈挑着做
```

---

## 四、技术栈不变清单（不用动）

- 桌面版 C#/net48 WPF + 客户版单文件 exe ✅
- 参数化选型引擎（规则 JSON + 双端解释器）✅
- NX 母模 + journal 批量导出 ✅
- .opc 数据包 + 一键发布流水线 ✅
- 平替对照 / 购物车 / 搜索 ✅

**升级只动 3 处新增**：① OCCT 转换服务 ② Three.js 前端 ③ TC 集成模块
