# bom-catia-v5-demo **Repository Path**: xuscode1/bom-catia-v5-demo ## Basic Information - **Project Name**: bom-catia-v5-demo - **Description**: No description available - **Primary Language**: Python - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-04 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BOM 管理系统 (CATIA V5 集成 demo) 延锋 ES9 门板项目的 BOM(物料清单)管理系统,支持 Excel EBOM/CBOM 导入导出、BOM 树状与表格管理、数据校验、成本估算,以及通过 CATIA CAA 插件自动同步零件数据。 ## 功能特性 - **EBOM / CBOM Excel 导入导出** - 基于映射模板(Mapping Template)灵活配置 Excel 列 → 系统字段的映射关系 - 内置默认模板「ES9 DP CBOM_v2」,支持序号级号解析、层级构建、单位换算等转换规则 - 导入前预览功能、导入历史记录 - **BOM 数据管理** - BOM 树形结构 + 扁平表格两种视图 - 完整 CRUD,支持批量更新字段、字段配置自定义 - **数据校验** - 可配置校验规则(必填、范围、正则等),按 error / warning / info 分级提示 - **成本估算** - 可配置成本模型(材料 / 人工 / 制造 / 管理费率),批量计算并记录历史 - **CATIA V5 同步集成** - CAA 插件(C++)遍历 CATProduct 装配树,提取属性与测量数据 - 通过 HTTP 接口 (`/api/plm/sync-data`) 实时同步到 BOM 系统 - 同步批次管理:新增 / 更新 / 跳过统计,支持分批导入确认 - VBA 脚本辅助数据导入(`vba_source/`) ## 技术架构 ``` ┌─────────────────┐ HTTP POST ┌──────────────────────┐ │ CATIA CAA │ ───────────────────► │ BOM System │ │ 插件 (C++) │ JSON 数据 │ Flask (Python) │ │ BomSyncCmd │ │ /api/plm/* 等 │ └─────────────────┘ └──────────┬───────────┘ │ SQLAlchemy ┌───────▼────────┐ │ SQLite 数据库 │ │ (data/bom_system.db) │ └─────────────────┘ ▲ ┌─────────────────┐ │ │ 前端单页应用 │ ────────── REST API ───────────┘ │ (index.html) │ └─────────────────┘ ``` - **后端**:Python 3 + Flask + SQLAlchemy + pandas / openpyxl - **前端**:单文件原生 HTML/JS 单页应用(由 Flask 直接托管) - **数据库**:SQLite(默认 `data/bom_system.db`) - **CATIA 集成**:CAA C++ 插件(`catia_caa_integration/`)+ VBA 脚本(`vba_source/`) ## 目录结构 ``` bom-system/ ├── backend/ # Flask 后端 │ ├── app.py # 应用工厂,默认数据初始化 │ ├── config.py # 配置(开发/生产) │ ├── models.py # SQLAlchemy 数据模型 │ ├── routes/ # REST API 路由 │ │ ├── bom.py # BOM CRUD / 树 / 批量更新 │ │ ├── import_export.py # Excel 导入导出 / 映射模板 │ │ ├── validation.py # 数据校验规则 │ │ ├── cost.py # 成本模型与计算 │ │ └── plm.py # CATIA/PLM 同步 │ └── services/ # 业务逻辑层 ├── frontend/index.html # 前端单页应用 ├── catia_caa_integration/ # CATIA CAA C++ 插件(含使用说明) ├── vba_source/ # Excel VBA 辅助模块 ├── data/ # SQLite 数据库 / 分析结果 ├── import_es9_data.py # 批量导入 ES9 Excel 数据脚本 ├── read_excel.py # Excel 结构分析工具 └── run.py # 启动入口 ``` ## 安装教程 1. 安装 Python 3.10+ 依赖: ```bash pip install -r requirements.txt ``` 2. 启动服务: ```bash python run.py ``` 3. 访问 http://127.0.0.1:5000 (首次启动自动创建数据库表及默认数据) ## 使用说明 ### Excel 导入 1. 在页面选择/新建映射模板,「ES9 DP CBOM_v2」为内置默认模板 2. 通过预览接口检查 Excel 列识别是否正确 3. 上传 Excel 文件并选择模板进行导入,查看导入结果与历史记录 ### 成本计算 - 配置成本模型费率(材料、人工、制造、管理费率) - 对当前 BOM 批量计算成本,结果保存在每个零件节点上 ### CATIA 同步 - 构建 CAA 插件(见 `catia_caa_integration/README.md`),配置 `_bomServerUrl` 指向本服务 - 在 CATIA 中点击按钮遍历装配树,数据经 `POST /api/plm/sync-data` 写入同步批次 - 在系统中确认批次后批量导入到 BOM,支持新建/更新/跳过统计 ## 主要 API | 模块 | 接口前缀 | 说明 | |------|----------|------| | BOM | `/api/bom/*` | 树、扁平列表、CRUD、批量更新 | | 导入导出 | `/api/io/*` | 映射模板、导入导出、预览、历史 | | 校验 | `/api/validation/*` | 校验规则、批量执行校验 | | 成本 | `/api/cost/*` | 成本模型、批量计算、历史 | | PLM | `/api/plm/*` | CATIA 同步数据、同步批次、绑定 | 详细接口与请求/响应示例见 `catia_caa_integration/README.md`。 ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request