2026-03-07 03:04:15 +08:00
|
|
|
# Gemold - 模具制造管理系统
|
|
|
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
## 项目简介
|
|
|
|
|
|
|
|
|
|
**Gemold** 是一个面向模具制造行业的综合性管理系统,集成了STP文件分析、模具设计建议、用户权限管理和进销存功能。 系统采用现代化的技术栈,提供高效、稳定、易扩展的解决方案。
|
|
|
|
|
|
|
|
|
|
### 核心功能
|
|
|
|
|
|
|
|
|
|
| 功能模块 | 描述 |
|
|
|
|
|
|---------|------|
|
|
|
|
|
| 🔷 STP文件分析 | 使用PythonOCC解析STP文件,提取几何特征 |
|
|
|
|
|
| 📊 模具设计建议 | 自动生成型腔、型芯、工艺参数等设计方案 |
|
|
|
|
|
| 🎨 3D可视化 | 实时预览产品模型和模具结构 |
|
|
|
|
|
| 👥 用户权限管理 | 完整的角色权限控制系统 |
|
|
|
|
|
| 📦 进销存管理 | 库存、供应商、客户管理 |
|
|
|
|
|
| 💾 数据持久化 | PostgreSQL + RustFS存储 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
### 后端
|
|
|
|
|
- **FastAPI** - 笷性能异步Web框架
|
|
|
|
|
- **PythonOCC** - 专业CAD几何处理
|
|
|
|
|
- **SQLAlchemy** - ORM框架
|
|
|
|
|
- **PostgreSQL** - 关系型数据库
|
|
|
|
|
- **RustFS** - 高性能文件存储
|
|
|
|
|
|
|
|
|
|
### 前端
|
|
|
|
|
- **Vue.js 3** - 渐进式JavaScript框架
|
|
|
|
|
- **Three.js** - 3D可视化库
|
|
|
|
|
- **原生CSS** - 白色简约现代风格
|
|
|
|
|
|
|
|
|
|
### 基础设施
|
|
|
|
|
- **Docker** - 容器化部署
|
|
|
|
|
- **Systemd** - 服务管理
|
|
|
|
|
- **Conda** - 环境管理
|
|
|
|
|
|
|
|
|
|
---
|
2026-02-12 23:17:53 +08:00
|
|
|
|
2026-02-11 22:40:35 +08:00
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
```
|
2026-03-07 03:04:15 +08:00
|
|
|
geMoldInsight/
|
2026-04-21 14:20:20 +08:00
|
|
|
├── src/ # 源代码目录
|
|
|
|
|
│ ├── main.py # 主程序入口
|
|
|
|
|
│ ├── api/ # API路由层
|
|
|
|
|
│ │ ├── routes.py # 模具分析API路由聚合
|
|
|
|
|
│ │ ├── auth_routes.py # 认证API
|
|
|
|
|
│ │ ├── v1/ # MoldInsight API (v1)
|
|
|
|
|
│ │ │ ├── upload_router.py # 文件上传
|
|
|
|
|
│ │ │ ├── task_router.py # 任务状态查询
|
|
|
|
|
│ │ │ └── history_router.py # 分析历史
|
|
|
|
|
│ │ └── inventory/ # 进销存API
|
|
|
|
|
│ │ ├── product_routes.py # 产品管理
|
|
|
|
|
│ │ ├── sales_order_routes.py # 销售订单
|
|
|
|
|
│ │ ├── purchase_order_routes.py # 采购订单
|
|
|
|
|
│ │ ├── finance_routes.py # 财务管理
|
|
|
|
|
│ │ ├── material_routes.py # 物料管理
|
|
|
|
|
│ │ └── schemas/ # 请求/响应模型
|
|
|
|
|
│ ├── core/ # 核心业务逻辑
|
|
|
|
|
│ │ ├── stp_parser.py # STP文件解析
|
|
|
|
|
│ │ ├── geometry_analyzer.py # 几何分析
|
|
|
|
|
│ │ ├── mesh_generator.py # 网格生成
|
|
|
|
|
│ │ ├── mold_generator.py # 普通塑料模具生成
|
|
|
|
|
│ │ ├── aluminum_foam_mold.py # 铝泡沫模具生成
|
|
|
|
|
│ │ ├── mold_quality_inspector.py # 模具质量检测
|
|
|
|
|
│ │ └── ai_mold_assistant.py # AI模具助手
|
|
|
|
|
│ ├── models/ # 数据模型
|
|
|
|
|
│ │ ├── database.py # SQLAlchemy ORM模型
|
|
|
|
|
│ │ └── schemas.py # Pydantic模式
|
|
|
|
|
│ ├── services/ # 服务层
|
|
|
|
|
│ │ ├── auth_service.py # 认证服务
|
|
|
|
|
│ │ ├── processing_service.py # STP处理流程编排
|
|
|
|
|
│ │ ├── calculation_service.py # 工程参数计算
|
|
|
|
|
│ │ ├── material_service.py # 材料属性管理
|
|
|
|
|
│ │ ├── task_query_service.py # 任务状态查询
|
|
|
|
|
│ │ ├── storage_integration_rustfs.py # RustFS存储集成
|
|
|
|
|
│ │ ├── redis_task_manager.py # Redis任务管理
|
|
|
|
|
│ │ └── verification_service.py # FreeCAD几何验证
|
|
|
|
|
│ ├── database/ # 数据库管理
|
|
|
|
|
│ │ ├── database.py # 数据库连接池
|
|
|
|
|
│ │ ├── init_db.py # 数据库初始化
|
|
|
|
|
│ │ └── migrate_db.py # 数据库迁移
|
|
|
|
|
│ ├── storage/ # 对象存储
|
|
|
|
|
│ │ ├── rustfs_storage.py # RustFS S3客户端
|
|
|
|
|
│ │ └── object_storage.py # 通用对象存储
|
|
|
|
|
│ └── utils/ # 工具类
|
2026-03-07 03:04:15 +08:00
|
|
|
│ ├── logger.py # 日志工具
|
|
|
|
|
│ ├── file_handler.py # 文件处理
|
2026-04-21 14:20:20 +08:00
|
|
|
│ └── html_generator.py # 3D可视化HTML生成
|
|
|
|
|
├── static/ # 前端静态资源
|
|
|
|
|
│ ├── vue-app.js # Vue3 SPA应用
|
|
|
|
|
│ ├── style.css # 全局样式
|
|
|
|
|
│ └── index.html # 入口页面
|
|
|
|
|
├── templates/ # Jinja2模板
|
|
|
|
|
├── config/ # 配置模块
|
|
|
|
|
│ └── settings.py # 环境变量配置
|
|
|
|
|
├── scripts/ # 脚本工具
|
|
|
|
|
│ ├── db/ # SQL脚本
|
|
|
|
|
│ ├── migrations/ # 数据迁移脚本
|
|
|
|
|
│ ├── tools/ # 临时检查/清理工具
|
|
|
|
|
│ └── verify_stp.py # STP验证脚本
|
|
|
|
|
├── docs/ # 项目文档
|
|
|
|
|
│ └── deployment/ # 部署相关文档
|
|
|
|
|
├── tests/ # 测试用例
|
|
|
|
|
├── uploads/ # 上传文件目录 (gitignore)
|
|
|
|
|
├── html_output/ # 3D可视化输出 (gitignore)
|
|
|
|
|
├── requirements.txt # Python依赖
|
|
|
|
|
├── docker-compose.yml # Docker编排配置
|
|
|
|
|
├── Dockerfile # Docker构建文件
|
|
|
|
|
├── start.sh # Linux启动脚本
|
|
|
|
|
├── .env.example # 环境变量模板
|
|
|
|
|
└── .env # 环境变量 (gitignore)
|
2026-02-11 22:40:35 +08:00
|
|
|
```
|
|
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
---
|
2026-02-11 22:40:35 +08:00
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
## 快速开始
|
2026-02-11 22:40:35 +08:00
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
### 1. 环境要求
|
|
|
|
|
- Python 3.10+
|
|
|
|
|
- PostgreSQL 13+
|
|
|
|
|
- Conda (推荐)
|
2026-02-11 22:40:35 +08:00
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
### 2. 安装依赖
|
2026-02-11 22:40:35 +08:00
|
|
|
|
|
|
|
|
```bash
|
2026-03-07 03:04:15 +08:00
|
|
|
# 创建Conda环境
|
|
|
|
|
conda create -n py_3.12 python=3.12
|
|
|
|
|
|
|
|
|
|
# 激活环境
|
|
|
|
|
conda activate py_3.12
|
|
|
|
|
|
|
|
|
|
# 安装依赖
|
2026-02-11 22:40:35 +08:00
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
### 3. 配置环境变量
|
|
|
|
|
|
|
|
|
|
创建 `.env` 文件:
|
|
|
|
|
|
|
|
|
|
```env
|
|
|
|
|
# 数据库配置
|
|
|
|
|
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/gemold
|
|
|
|
|
|
|
|
|
|
# 服务配置
|
|
|
|
|
SECRET_KEY=your-secret-key-here
|
|
|
|
|
PORT=8000
|
|
|
|
|
|
|
|
|
|
# 管理员配置
|
|
|
|
|
ADMIN_USERNAME=admin
|
|
|
|
|
ADMIN_PASSWORD=admin123
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4. 初始化数据库
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python src/database/init_db.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5. 启动服务
|
|
|
|
|
|
|
|
|
|
**Linux:**
|
|
|
|
|
```bash
|
|
|
|
|
chmod +x start.sh
|
|
|
|
|
./start.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Windows:**
|
|
|
|
|
```cmd
|
|
|
|
|
start.bat
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Docker:**
|
|
|
|
|
```bash
|
|
|
|
|
docker-compose up -d
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 6. 访问服务
|
|
|
|
|
|
|
|
|
|
- 服务地址: http://localhost:8000
|
|
|
|
|
- 默认管理员: admin / admin123
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 核心功能详解
|
|
|
|
|
|
|
|
|
|
### STP文件分析
|
|
|
|
|
|
|
|
|
|
系统使用PythonOCC解析STP文件,提取以下几何特征:
|
|
|
|
|
|
|
|
|
|
| 特征类型 | 描述 |
|
|
|
|
|
|---------|------|
|
|
|
|
|
| 边界框 | 产品整体尺寸 |
|
|
|
|
|
| 体积 | 产品体积计算 |
|
|
|
|
|
| 表面积 | 产品表面积计算 |
|
|
|
|
|
| 壁厚 | 壁厚分布分析 |
|
|
|
|
|
| 加强筋 | 加强筋位置和密度 |
|
|
|
|
|
| 孔洞 | 孔洞和凹槽位置 |
|
|
|
|
|
| 倒扣 | 倒扣区域检测 |
|
|
|
|
|
| 对称性 | 对称性分析 |
|
|
|
|
|
| 重心 | 重心位置计算 |
|
|
|
|
|
|
|
|
|
|
### 模具设计建议
|
|
|
|
|
|
|
|
|
|
系统自动生成以下设计建议。
|
|
|
|
|
|
|
|
|
|
| 建议类型 | 描述 |
|
|
|
|
|
|---------|------|
|
|
|
|
|
| 型腔数量 | 单腔或多腔建议 |
|
|
|
|
|
| 模架尺寸 | 基于产品尺寸推荐 |
|
|
|
|
|
| 顶出系统 | 顶针顶出布局 |
|
|
|
|
|
| 冷却水路 | 冷却需求分析 |
|
|
|
|
|
| 材料选择 | 基于产量推荐材料 |
|
|
|
|
|
|
|
|
|
|
### 3D可视化
|
|
|
|
|
|
|
|
|
|
- **点云模型** - 从STP提取的真实几何形状
|
|
|
|
|
- **模具型腔** - 型腔和型芯可视化
|
|
|
|
|
- **分型面** - 分型面位置显示
|
|
|
|
|
- **交互控制** - 旋转、缩放、平移
|
|
|
|
|
|
|
|
|
|
- **视图切换** - 显示/隐藏各组件
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## API文档
|
|
|
|
|
|
|
|
|
|
### 认证API
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
POST /api/auth/login # 用户登录
|
|
|
|
|
POST /api/auth/logout # 用户登出
|
|
|
|
|
GET /api/auth/me # 获取当前用户信息
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 文件分析API
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
POST /api/upload # 上传STP文件
|
|
|
|
|
POST /api/status/{task_id} # 获取分析状态
|
|
|
|
|
GET /api/history # 获取分析历史
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 进销存API
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
GET /api/inventory/dashboard # 仪表盘数据
|
|
|
|
|
GET /api/inventory/products # 产品列表
|
|
|
|
|
POST /api/inventory/products # 创建产品
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 部署指南
|
2026-02-13 00:29:12 +08:00
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
### Systemd服务 (Linux)
|
2026-02-11 22:40:35 +08:00
|
|
|
|
|
|
|
|
```bash
|
2026-03-07 03:04:15 +08:00
|
|
|
# 复制服务文件
|
|
|
|
|
sudo cp gemoldinsight.service /etc/systemd/system/
|
|
|
|
|
|
|
|
|
|
# 启用服务
|
|
|
|
|
sudo systemctl enable gemoldinsight
|
|
|
|
|
|
|
|
|
|
# 启动服务
|
|
|
|
|
sudo systemctl start gemoldinsight
|
2026-02-11 22:40:35 +08:00
|
|
|
```
|
|
|
|
|
|
2026-03-07 03:04:15 +08:00
|
|
|
### Docker部署
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 构建镜像
|
|
|
|
|
docker build -t gemold:latest .
|
|
|
|
|
|
|
|
|
|
# 启动容器
|
|
|
|
|
docker-compose up -d
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 开发指南
|
|
|
|
|
|
|
|
|
|
### 代码风格
|
|
|
|
|
- 遵循PEP 8规范
|
|
|
|
|
- 使用类型注解
|
|
|
|
|
- 保持函数简洁
|
|
|
|
|
|
|
|
|
|
### 提交规范
|
|
|
|
|
- feat: 新功能
|
|
|
|
|
- fix: 修复bug
|
|
|
|
|
- docs: 文档更新
|
|
|
|
|
- refactor: 代码重构
|
|
|
|
|
- test: 测试相关
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
|
|
|
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 贡献者
|
|
|
|
|
|
|
|
|
|
感谢所有为这个项目做出贡献的开发者。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 联系方式
|
|
|
|
|
|
|
|
|
|
- 项目地址: [GitHub](https://github.com/your-org/gemold)
|
|
|
|
|
- 问题反馈: [Issues](https://github.com/your-org/gemold/issues)
|