# Gemold - 模具制造管理系统
![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)
## 项目简介 **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** - 环境管理 --- ## 项目结构 ``` geMoldInsight/ ├── src/ # 源代码目录 │ ├── main.py # 主程序入口 │ ├── api/ # API路由 │ │ ├── routes.py # 主API路由 │ │ ├── auth_routes.py # 认证API │ │ └── inventory_routes.py # 进销存API │ ├── core/ # 核心业务逻辑 │ │ ├── stp_parser.py # STP文件解析 │ │ ├── geometry_analyzer.py # 几何分析 │ │ ├── mesh_generator.py # 网格生成 │ │ └── mold_generator.py # 模具生成 │ ├── models/ # 数据模型 │ │ ├── database.py # 数据库模型 │ │ └── schemas.py # 数据模式 │ ├── services/ # 服务层 │ │ ├── auth_service.py # 认证服务 │ │ ├── storage_service.py # 存储服务 │ │ └── storage_integration_rustfs.py # RustFS集成 │ ├── database/ # 数据库管理 │ │ ├── database.py # 数据库连接 │ │ └── init_db.py # 数据库初始化 │ └── utils/ # 工具类 │ ├── logger.py # 日志工具 │ ├── file_handler.py # 文件处理 │ └── html_generator.py # HTML生成 ├── static/ # 静态文件 │ ├── vue-app.js # Vue应用 │ ├── style.css # 样式文件 │ └── index.html # 主页面 ├── scripts/ # 脚本工具 │ └── verify_stp.py # STP验证脚本 ├── uploads/ # 上传文件目录 ├── html_output/ # 生成的HTML文件 ├── logs/ # 日志文件 ├── requirements.txt # 依赖包 ├── docker-compose.yml # Docker配置 ├── start.sh # Linux启动脚本 ├── start.bat # Windows启动脚本 └── .env # 环境变量 ``` --- ## 快速开始 ### 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. 配置环境变量 创建 `.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 # 创建产品 ``` --- ## 部署指南 ### 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)