This commit is contained in:
2026-03-07 03:04:15 +08:00
parent bfe6da3376
commit 557fcd578a
10 changed files with 1469 additions and 201 deletions
+263 -46
View File
@@ -1,77 +1,294 @@
# MoldInsight - 模具几何分析系统
# Gemold - 模具制造管理系统
<div align="center">
![Version](https://img.shields.io/badge/version-v4.0.0-blue)
![Python](https://img.shields.io/badge/python-3.12-blue)
![FastAPI](https://img.shields.io/badge/fastapi-0.100.0-green)
![Vue.js](https://img.shields.io/badge/vue.js-3-green)
![PostgreSQL](https://img.shields.io/badge/postgresql-15-blue)
![License](https://img.shields.io/badge/license-Mit-green)
</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** - 环境管理
---
## 项目结构
```
moldinsight_project/
geMoldInsight/
├── src/ # 源代码目录
│ ├── main.py # 主程序入口
│ ├── api/ # API路由
│ │ └── routes.py
│ │ ├── routes.py # 主API路由
│ │ ├── auth_routes.py # 认证API
│ │ └── inventory_routes.py # 进销存API
│ ├── core/ # 核心业务逻辑
│ │ ├── stp_parser.py
│ │ ├── geometry_analyzer.py
│ │ └── mesh_generator.py
│ │ ├── stp_parser.py # STP文件解析
│ │ ├── geometry_analyzer.py # 几何分析
│ │ ├── mesh_generator.py # 网格生成
│ │ └── mold_generator.py # 模具生成
│ ├── models/ # 数据模型
│ │ ├── schemas.py
│ │ └── database.py
│ ├── services/ # 业务服务
│ │ └── storage_service.py
│ │ ├── database.py # 数据库模型
│ │ └── schemas.py # 数据模式
│ ├── services/ # 服务层
│ │ ├── auth_service.py # 认证服务
│ │ ├── storage_service.py # 存储服务
│ │ └── storage_integration_rustfs.py # RustFS集成
│ ├── database/ # 数据库管理
│ │ ├── database.py
│ │ └── init_db.py
│ │ ├── database.py # 数据库连接
│ │ └── init_db.py # 数据库初始化
│ └── utils/ # 工具类
│ ├── logger.py
│ ├── file_handler.py
│ └── html_generator.py
├── config/ # 配置文件
│ └── settings.py
│ ├── logger.py # 日志工具
│ ├── file_handler.py # 文件处理
│ └── html_generator.py # HTML生成
├── static/ # 静态文件
│ ├── script.js
│ └── style.css
├── templates/ # HTML模板
│ └── index.html
│ ├── vue-app.js # Vue应用
│ ├── style.css # 样式文件
│ └── index.html # 主页面
├── scripts/ # 脚本工具
│ └── verify_stp.py # STP验证脚本
├── uploads/ # 上传文件目录
├── html_output/ # 生成的HTML文件
├── logs/ # 日志文件
├── tests/ # 测试文件
├── docs/ # 文档
├── requirements.txt # 依赖包
├── docker-compose.yml # Docker配置
├── start.sh # Linux启动脚本
├── start.bat # Windows启动脚本
└── .env # 环境变量
```
## 功能特性
- ✅ STP文件解析和几何分析
- ✅ JSON数据导出
- ✅ PostgreSQL数据库存储
- ✅ 3D可视化HTML生成
- ✅ Web界面文件上传
- ✅ 任务状态跟踪
## 这是一个模具设计项目:
- 输入: 产品的三维模型(STP文件)
- 输出: 模具设计方案(型腔、型芯、工艺参数等)
- 目标: 为泡沫产品(ABS、PP、PC等材料)设计铝制模具
---
## 快速开始
1. 安装依赖:
### 1. 环境要求
- Python 3.10+
- PostgreSQL 13+
- Conda (推荐)
### 2. 安装依赖
```bash
# 创建Conda环境
conda create -n py_3.12 python=3.12
# 激活环境
conda activate py_3.12
# 安装依赖
pip install -r requirements.txt
```
### 3. 配置环境变量
2. 配置数据库连接(修改.env文件)
创建 `.env` 文件:
3. 启动服务:
```bash
python src/main.py
```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. 访问服务
- 查看端口配置:打开 `.env` 文件查看 `PORT` 的值
- 默认端口:8000
- 访问地址:http://localhost:${PORT}
### 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 # 创建产品
```
---
## 部署指南
### Systemd服务 (Linux)
```bash
# 复制服务文件
sudo cp gemoldinsight.service /etc/systemd/system/
# 启用服务
sudo systemctl enable gemoldinsight
# 启动服务
sudo systemctl start gemoldinsight
```
### 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)